我在Linux上运行SSH,调用脚本在执行时被移到后台。
SSH命令在远程win 10服务器上执行批处理命令。
调用脚本中的语法为:chkval=$(SSH domain\remotehost cmd arg2 arg2)
。
只要我在前台运行脚本,就可以从命令行或调用脚本工作,但只要我将脚本放入后台或将其移到" at"对于预定的执行程序,SSH命令失败,并且#34;预期更多令牌"错误。
脚本不会死,SSH也不会调用,但它永远不会执行远程命令。
答案 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 &