Shell 脚本在多台服务器上执行

c0m*_*ade 5 linux scripting ssh

是否可以在一台服务器上运行 ksh/sh 脚本的一部分,然后 ssh 到另一台服务器并继续执行脚本的其余部分?或者有解决方法吗?

我有一个用户,每次访问服务器时我都不必验证该用户,因此我可以从一台服务器跳到另一台服务器,而无需任何键盘交互。

我已经尝试过这个,尝试将一些逻辑分离到另一个脚本中:

MYSCRIPT="nohup ksh myscript.ksh > mylog.log &"
ssh servername ${MYSCRIPT}
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它似乎没有在另一台服务器上执行这个脚本。

上面的整个代码是for循环的一部分;我为服务器列表执行相同的脚本。

出于测试目的,该列表有两个服务器;由于一些奇怪和扭曲的原因,只有最后一个(或第二个)服务器脚本按我的预期工作。

所有服务器都可以看到 myscript.ksh —— 它对所有服务器都是可见和可执行的。

Kev*_*n M 3

听起来您想在另一台服务器上运行一系列命令,而不必多次登录。为了实现这一点,你可以这样做:

local_command sequence
ssh remote-server << End-Of-File
        remote_command 1
        remote_command 2
        remote_command 3
End-Of-File
Run Code Online (Sandbox Code Playgroud)

这将运行remote_command 1,完成后,运行remote_command 2,然后remote_command 3全部在远程服务器上