Chinaunix

标题: 关于telnet到远程机器后执行命令的问题 [打印本页]

作者: finixlei    时间: 2009-01-20 21:09
标题: 关于telnet到远程机器后执行命令的问题
比如说:
$t = new Net::Telnet(Timeout=>100);
$t->open(...);
$t->login(...);
$t->cmd("$mycmd");

各位大侠,我的问题是:这个session它100秒就会断掉,但我想执行的这个命令$mycmd却估计要执行一个小时。除了把Timeout设置为大于3600,还有其他的方法吗?
换句话说,我想让远端机器执行一个命令,除了telnet上去,用cmd让他执行,还有没有什么其他方法?(因为命令执行时间较长或不确定)
谢谢!
作者: ynchnluiti    时间: 2009-01-20 21:15
原帖由 finixlei 于 2009-1-20 21:09 发表
比如说:
$t = new Net::Telnet(Timeout=>100);
$t->open(...);
$t->login(...);
$t->cmd("$mycmd");

各位大侠,我的问题是:这个session它100秒就会断掉,但我想执行的这个命令$mycmd却估计要执行一个小 ...

ssh登录算一种方法吗
作者: finixlei    时间: 2009-01-20 21:20
关键是我想让它远程上去后,执行完要求执行的命令再退出,而不是等Timeout设置的时间到了就退出。这个能做到吗?否则的话我就要估计每个命令执行的时间,然后设置Timeout参数。
作者: ynchnluiti    时间: 2009-01-20 21:37
原帖由 finixlei 于 2009-1-20 21:20 发表
关键是我想让它远程上去后,执行完要求执行的命令再退出,而不是等Timeout设置的时间到了就退出。这个能做到吗?否则的话我就要估计每个命令执行的时间,然后设置Timeout参数。

嗯,ssh一样要面对timeout的问题。
作者: flw    时间: 2009-01-20 21:50
你可以在远程主机起一个进程,然后用 socket 通信,异步地搞。
作者: riverlee2008    时间: 2009-01-20 22:03
你让运行的前加nohup不就完了吗
作者: Lonki    时间: 2009-01-20 22:11
原帖由 finixlei 于 2009-1-20 21:09 发表
比如说:
$t = new Net::Telnet(Timeout=>100);
$t->open(...);
$t->login(...);
$t->cmd("$mycmd");

各位大侠,我的问题是:这个session它100秒就会断掉,但我想执行的这个命令$mycmd却估计要执行一个小 ...



Timeout => undef
作者: ynchnluiti    时间: 2009-01-21 01:48
原帖由 riverlee2008 于 2009-1-20 22:03 发表
你让运行的前加nohup不就完了吗

这样不好确定什么时候执行完了。
作者: finixlei    时间: 2009-01-21 08:18
5楼的太麻烦了;7楼好像是正解,我再试一试;6楼啥意思没看懂。
谢谢各位!
作者: flw    时间: 2009-01-21 10:37
其实也不麻烦。
把要执行的脚本放到一个 URL,
wget | sh 执行,
然后再用 wget 访问一个汇报结果的 URL,
写个简单的 CGI 处理一下,就可以了。
像你这种方法,机器多了要死人的,
并且,在复杂网络中缺了 timeout 的程序基本上是没法上线使用的。

如果类似的事情多了的话,就需要开发专用的 agent 来做这件事。

[ 本帖最后由 flw 于 2009-1-21 10:39 编辑 ]
作者: finixlei    时间: 2009-01-21 13:40
标题: undef则既不执行命令也不会断(即使有close)
改成undef之后,既不执行命令,也永元都不会断了。
我想在执行命令:$t->cmd("$mycmd"); 之后
$t->waitfor(String => '#');
然后就 $t->close();

为何它既不执行命令,也不会断了呢?
作者: flw    时间: 2009-01-21 13:45
有刚健的方法你不用,非要用脆弱的方法。
作者: finixlei    时间: 2009-01-21 13:48
哦,我明白了,我登上去之后,又su了,若不su,则一切正常!
作者: ynchnluiti    时间: 2009-01-21 14:23
原帖由 finixlei 于 2009-1-21 13:48 发表
哦,我明白了,我登上去之后,又su了,若不su,则一切正常!

服务器端没有启用block anti time-out schemes吗
作者: finixlei    时间: 2009-01-21 18:04
嵌入式powerpc




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2