Perl Net Telnet在后台运行命令并继续

时间:2014-07-08 20:01:22

标签: perl telnet

my $host = "some ip";
print "telnet into $host";
my $telnet = new Net::Telnet();
$telnet->open(Timeout=>10, Errmode=>'die', Host => $host );
$telnet->waitfor ( "/login:/" );
$telnet->print("user1\n");
$telnet->waitfor ( "/password:/" );
$telnet->print("passwd1\n");
$telnet->cmd("telnet <different ip> <port number> | tee /tmp/log");
print "look at /tmp/log later, proceeding further...";

此代码创建/ tmp / log文件并添加来自&#34; telnet&#34;的消息。提交文件/ tmp / log,但是它在几秒内超时,我希望它能够运行 cmd(&#34; telnet | tee / tmp / log&#34;); 并继续进行而无需等待对于提示或超时,所以/ tmp / log将继续收集打印给我的所有消息,以便稍后查看。

1 个答案:

答案 0 :(得分:0)

Net :: Telnet只能将您连接到远程shell。在后台执行命令是shell的一个特性,因此它不需要是Net :: Telnet的功能。例如。您应该能够在后台运行命令,如some-command >/tmp/foo &或带有( some | more | commands ) > /tmp/bar &的命令链。您如何执行此操作的语法取决于您使用Net :: Telnet连接的shell。