Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何编写ssh命令脚本,然后在会话后台执行?_Ssh - Fatal编程技术网

如何编写ssh命令脚本,然后在会话后台执行?

如何编写ssh命令脚本,然后在会话后台执行?,ssh,Ssh,我试图创建一个脚本来启动ssh会话,并在远程机器上执行命令,然后启动会话。到目前为止,我一直在使用-f或-f-N选项,但我不知道如何将会话恢复到前台,以验证我的命令是否正确执行 或者有没有一种方法可以让单个脚本启动ssh会话并继续向新打开的会话输入命令?然后是那个会议? 如果没有这些工作,我想另一种方法是启动ssh会话的脚本,通过另一个脚本上传并执行命令 关于如何做到这一点,你有什么想法吗?不清楚你想做什么。我会尽力帮忙的 可以在单个ssh会话中使用带引号的字符串(命令之间用分号分隔)顺序发出一

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

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


关于如何做到这一点,你有什么想法吗?

不清楚你想做什么。我会尽力帮忙的

可以在单个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连接中没有什么害处

关于您正试图完成的任务的详细信息可能会有所帮助。我对ssh会话进行后台处理的想法是,在执行远程命令后,会话将保持打开状态,脚本可以返回到本地执行命令。我建议您先让它按顺序工作,然后尝试后台处理。但我的经验是,增加并行性往往比它的价值更麻烦。如果您有背景,则需要使用不同的方法来验证结果,例如