脚本:SSH命令执行并保持shell打开,管道输出到文件

时间:2010-01-28 13:50:37

标签: bash batch-file ssh command pipe

我想执行一个ssh命令并将输出传递给一个文件。

一般情况下我会这样做:

ssh user @ ip“command”>> / MYFILE

问题是ssh在执行命令后关闭连接,但是 - 我的命令通过后台的另一个程序将输出发送到ssh通道,因此我没有收到输出。

如何处理ssh让我的shell保持打开状态?

欢呼声

斯文

2 个答案:

答案 0 :(得分:1)

我的理解是command启动了一些后台进程,可能稍后会将一些输出写入终端。如果command在此之前终止,则ssh会话将被终止,并且后台程序将没有终端写入。

一个简单而天真的解决方案就是睡得足够长

ssh user@ip "command; sleep 30m" >> /myfile

比睡眠更好的解决方案是等待后台进程以更智能的方式完成,但如果没有进一步的细节,这是不可能的。

答案 1 :(得分:0)

比bash更强大的东西是使用Paramiko和PyExpect的Python。