my $prompt = "someprompt"; my $t = new Net::Telnet (Errmode => "return", Prompt => '/\$ $/i'); my $ok = $t->open("10.1.46.16"); Error() if $ok != 1; # print "open $ok\n"; $ok = $t->login($username, $passwd); Error() if $ok != 1; # print "login $ok\n"; $ok = $t->print("PS1=$prompt"); Error() if $ok != 1; # print "set prompt $ok\n"; $ok = $t->waitfor("/$prompt/"); Error() if $ok != 1; # print "wait for set prompt $ok\n"; $ok = $t->print('CT'); Error() if $ok != 1; # print "CT $ok\n"; $ok = $t->waitfor("/$prompt/"); Error() if $ok != 1; # print "wait for CT $ok\n"; $ok = $t->print("$cmd"); Error() if $ok != 1; # print "run_ct $ok\n"; $ok = $t->waitfor("/$prompt/"); Error() if $ok != 1; # print "wait for run_ct $ok\n"; $ok = $t->print("ps -ef | grep run_ct | grep -v grep"); Error() if $ok != 1; # print "ps -ef $ok\n"; $ok = $t->waitfor("/$prompt/"); Error() if $ok != 1; # print "wait for ps -ef $ok\n"; my $ps = $t->get(); print "get = $ps\n"; my $process_id = (split /\s+/,$ps)[2]; print "\$process_id = $process_id\n"; $t->close; # Check if process has finished INF: for(;;) { print "loop\n"; my $t = new Net::Telnet (Errmode => "return", Prompt => '/\$ $/i'); my $ok = $t->open("10.1.46.16"); Error() if $ok != 1; print "open $ok\n"; $ok = $t->login($username, $passwd); Error() if $ok != 1; print "login $ok\n"; $ok = $t->print("PS1=$prompt"); Error() if $ok != 1; print "prompt $ok\n"; $ok = $t->waitfor("/$prompt/"); Error() if $ok != 1; print "wait for prompt $ok\n"; $ok = $t->print("ps -ef | grep run_ct | grep -v grep"); Error() if $ok != 1; print "ps -ef $ok\n"; $ok = $t->waitfor("/$prompt/"); # Error() if $ok != 1; print "\$ok = $ok\n"; print "wait for ps -ef $ok\n"; $ps = $t->get(); print "get = $ps\n"; my $process_id2 = (split /\s+/,$ps)[2]; print "process_id = $process_id\nprocess_id2 = $process_id2\n"; unless(defined $process_id2 && $process_id == $process_id2) { $ok = $t->print("CT"); Error() if $ok != 1; # print "CT $ok\n"; $ok = $t->waitfor("/$prompt/"); Error() if $ok != 1; # print "wait for CT $ok\n"; $ok = $t->print("cat $logfile"); Error() if $ok != 1; # print "cat $ok\n"; $ok = $t->waitfor("/$prompt/"); Error() if $ok != 1; # print "wait for cat $ok\n"; my $log_contents = $t->get(); print "$log_contents\n"; last INF; } $t->close; sleep 10; }