我正在尝试创建一个启动ssh会话的脚本,并在远程计算机上执行命令,然后对会话进行背景。到目前为止,我一直在使用-f或-f -N选项,但我不知道如何将会话恢复到前台以验证我的命令是否正确执行。
或者有一种方法可以让单个脚本启动ssh会话并继续向新打开的会话输入命令吗?然后背景那个会话? 如果没有这些工作,我在想另一种方法是启动ssh会话,通过另一个脚本上传和执行命令的脚本。
关于如何做到这一点的任何想法。
答案 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连接没有坏处。