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

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

我正在尝试找出如何更轻松地管理我的服务器。我想知道是否可以使我的脚本可供所有服务器使用,而无需将它们复制到服务器。

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

bash-3.2$ ls -l my_local_script
-rwxr--r--  1 mario  staff  554 Jan  9 13:35 my_local_script

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

bash-3.2$ ssh [email protected]
[email protected]'s password:
[root@prodsrvr00 ~]#

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

[root@prodsrvr00 ~]# my_local_script

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

答案1

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

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 [email protected] "bash -s" -- < ./my_local_script "Arg1" "Arg2"

我还建议研究诸如puppetchef等选项ansible

相关内容