$ssh->send("$svmmaint_cmd"); my $line; my $svm_error=0; while ( defined ($line = $ssh->read_line()) ) { if($line =~ /err|maint|repl|sync/i) { $svm_error = 1; } } if($svm_error) { open(SVM,">>$SVMMAINTFILE"); print SVM "$serverlist[$host] has a bad mirror/disk\n"; close(SVM); $svm_error=0; $ssh->read_all(2); # Tried to flush the input buffer here, no dice } # Flush the input buffer $ssh->read_all(1); # sometimes this works on other checks, but doesn't help here either $line = ""; # this was no help either # This is a new check, same ssh connection/expect object # Execute metadb check $ssh->send("$metadb_cmd"); my $line; while ( defined ( $line = $ssh->read_line()) ) { print("$serverlist[$host] - $line\n"); if($line < 6) { open(MDB,">>$METADBFILE"); print MDB "$serverlist[$host] has less than 6 metadbs\n"; close(MDB); } } #### server1 - 6 server2 - 6 server3 - 9 server4 - 9 server5 - State: Needs maintenance server5 - State: Needs maintenance server5 - Invoke: metareplace d105 c4t1d0s4 server5 - c4t1d0s4 0 No Maintenance Yes server5 - 6 server6 - 6 server7 - 6