gpt4 book ai didi

linux - 从后台脚本运行 SSH

转载 作者:太空宇宙 更新时间:2023-11-04 04:33:09 25 4
gpt4 key购买 nike

我在 Linux 上通过调用脚本运行 SSH,该脚本在执行时会移至后台。

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

只要我在前台运行脚本,这就可以从命令行或调用脚本运行,但是一旦我将脚本放入后台或将其交给“at”以进行计划的执行,SSH 命令就会失败,并出现“需要更多 token ”错误。

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

最佳答案

您可以使用 -N -f 标志来做到这一点。来自 man ssh

-f: Requests ssh to go to background just before command execution. This is useful if ssh is going to ask for passwords or passphrases, but the user wants it in the background. This implies -n. The recommended way to start X11 programs at a remote site is with something like ssh -f host xterm. If the ExitOnForwardFailure configuration option is set to “yes”, then a client started with -f will wait for all remote port forwards to be success‐fully established before placing itself in the background.

-N: Do not execute a remote command. This is useful for just forwarding ports (protocol version 2 only).

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

#!/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

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

nohup ./script.sh &

关于linux - 从后台脚本运行 SSH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44680392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com