如何编写ssh命令脚本然后对会话进行后台处理?

时间:2014-04-07 03:06:01

标签: ssh

我正在尝试创建一个启动ssh会话的脚本,并在远程计算机上执行命令,然后对会话进行背景。到目前为止,我一直在使用-f或-f -N选项,但我不知道如何将会话恢复到前台以验证我的命令是否正确执行。

或者有一种方法可以让单个脚本启动ssh会话并继续向新打开的会话输入命令吗?然后背景那个会话? 如果没有这些工作,我在想另一种方法是启动ssh会话,通过另一个脚本上传和执行命令的脚本。

关于如何做到这一点的任何想法。

1 个答案:

答案 0 :(得分:1)

目前尚不清楚你要做什么。我会尽力提供帮助。

可以在单个ssh会话中使用单引号字符串顺序发出一系列命令,命令以分号分隔。

$ ssh user@remotehost 'ls; echo  foo > bar; cat bar; rm bar'

它将返回上一次命令运行的结果。

我很困惑你为什么要开始会话。

如果需要您可以使用nohup在远程计算机上启动长时间运行的进程,然后关闭会话。

如果您只需要运行一系列命令,每个命令都取决于最后一个命令的结果,那么您不需要对该过程进行后台处理,只需将该逻辑放入命令序列即可。

$ ssh user@remotehost 'if ![ -f bar ];then echo  foo > bar && cat bar && rm bar; fi'

如果要做很多事情,多个顺序ssh和scp连接没有坏处。