从后台脚本运行SSH

时间:2017-06-21 15:29:47

标签: linux windows bash shell ssh

我在Linux上运行SSH,调用脚本在执行时被移到后台。

SSH命令在远程win 10服务器上执行批处理命令。
调用脚本中的语法为:chkval=$(SSH domain\remotehost cmd arg2 arg2)

只要我在前台运行脚本,就可以从命令行或调用脚本工作,但只要我将脚本放入后台或将其移到" at"对于预定的执行程序,SSH命令失败,并且#34;预期更多令牌"错误。

脚本不会死,SSH也不会调用,但它永远不会执行远程命令。

1 个答案:

答案 0 :(得分:-1)

哟可以使用-N -f标志来做到这一点。 来自男人ssh

  

-f:       请求ssh在命令执行之前转到后台。如果ssh要求密码或密码短语,但用户希望在后台使用密码或密码短语,这很有用。这意味着-n。在远程站点启动X11程序的推荐方法是使用类似ssh -f host xterm的方法。       如果ExitOnForwardFailure配置选项设置为“yes”,则以-f开头的客户端将等待所有远程端口转发成功完成,然后再将其置于后台。

     

-N:       不要执行远程命令。这对于仅转发端口非常有用(仅限协议版本2)。

Y留下示例脚本。首先需要客户端/服务器身份验证是基于密钥的,因为您不需要输入用户/密码

#!/bin/bash
dst_machine_ip="192.168.0.100"
ssh  -Nf $dst_machine_ip

# Here goes your remote commands
ls
date
# Exit
ssh -O exit $dst_machine_ip

Yo可以直接在后台执行此脚本

nohup ./script.sh &