我在Linux上从一个调用脚本运行SSH,该脚本在执行时被移动到后台。
SSH命令在远程win 10服务器上执行批处理命令。
调用脚本中的语法是:chkval=$(SSH domain\remotehost cmd arg2 arg2)。
只要我在前台运行脚本,这就可以从命令行或调用脚本中执行,但一旦我将脚本放到后台或将其交给调度执行部分的"at“,SSH命令就会失败,出现”更多令牌预期的“错误。
脚本不死,SSH调用也不死,但它从不执行远程命令。
发布于 2017-06-21 15:48:13
Yo可以用-N -f旗帜做到这一点。从那个人那里
-f:请求ssh在命令执行之前转到后台。如果ssh想要密码或密码,这是有用的,但是用户希望它在后台。这意味着-n。在远程站点上启动X11程序的推荐方法是使用类似ssh -f主机xterm之类的内容。如果ExitOnForwardFailure配置选项设置为“yes”,那么使用-f启动的客户端将等待所有远程端口转发成功--在将自己置于后台之前完全建立。 -N:不要执行远程命令。这对于仅仅转发端口非常有用(仅协议版本2)。
你留下了一个示例脚本。Yo首先需要客户/服务器身份验证是基于密钥的,因为您不需要输入用户/密码
#!/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_ipYo可以直接在后台执行此脚本。
nohup ./script.sh &
https://stackoverflow.com/questions/44680392
复制相似问题