我正在尝试找出如何更轻松地管理我的服务器。我想知道是否可以使我的脚本可供所有服务器使用,而无需将它们复制到服务器。
它们位于我的计算机(客户端)中,
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"
我还建议研究诸如puppet
、chef
等选项ansible
。