在客户端包含的远程服务器上执行脚本

mrg*_*tag 4 scripting ssh remote rsh

我想弄清楚如何更轻松地管理我的服务器。我想知道是否可以让我的脚本对所有服务器可用,而无需将它们复制到服务器。

它们位于我的计算机(客户端)中,

bash-3.2$ ls -l my_local_script
-rwxr--r--  1 mario  staff  554 Jan  9 13:35 my_local_script
Run Code Online (Sandbox Code Playgroud)

我总是使用 SSH 通过我的终端远程登录

bash-3.2$ ssh root@192.168.56.140
root@192.168.56.140's password:
[root@prodsrvr00 ~]#
Run Code Online (Sandbox Code Playgroud)

一旦我登录到服务器,我想知道是否有任何方法可以执行脚本,就像它在本地可用一样,而无需将其复制到服务器。

[root@prodsrvr00 ~]# my_local_script
Run Code Online (Sandbox Code Playgroud)

由于它是 NAT 网络,因此我无法通过 SSH 返回到我的计算机(客户端)。

Van*_*gaS 5

要在登录远程服务器后执行此操作,请执行以下操作:

ssh <local_machine_where_script_resides> "cat <Full_path_to_my_local_script>" | bash

用脚本所需的任何解释器替换“bash” (I wouldn't recommend this way and prefer below)

有一种方法可以在不登录远程机器的情况下执行此操作:

ssh <remote_machine> "bash -s" -- < ./my_local_script "Arg1" "Arg2"

在你的情况下,它是:

ssh root@192.168.56.140 "bash -s" -- < ./my_local_script "Arg1" "Arg2"

我建议,以及寻找到类似的选项puppetchefansible等。