我想执行一个ssh命令并将输出传递给一个文件。
一般情况下我会这样做:
ssh user @ ip“command”>> / MYFILE
问题是ssh在执行命令后关闭连接,但是 - 我的命令通过后台的另一个程序将输出发送到ssh通道,因此我没有收到输出。
如何处理ssh让我的shell保持打开状态?
欢呼声
斯文
答案 0 :(得分:1)
我的理解是command
启动了一些后台进程,可能稍后会将一些输出写入终端。如果command
在此之前终止,则ssh会话将被终止,并且后台程序将没有终端写入。
一个简单而天真的解决方案就是睡得足够长
ssh user@ip "command; sleep 30m" >> /myfile
比睡眠更好的解决方案是等待后台进程以更智能的方式完成,但如果没有进一步的细节,这是不可能的。
答案 1 :(得分:0)
比bash更强大的东西是使用Paramiko和PyExpect的Python。