编写远程管理脚本

编写远程管理脚本

我需要能够在本地运行一个脚本,该脚本将连接到各种服务器并在它们上运行命令。实现这一目标的最佳方法是什么?

答案1

就我个人而言,我会使用卡皮斯特拉诺。它很友好并且用 Ruby 编写,他们已经为您完成了所有繁重的工作。

来自维基百科:

Capistrano 是一个实用程序和框架,用于通过 SSH 在多台远程计算机上并行执行命令。

答案2

您可以使用运行命令ssh hostname command。如果您需要执行整个脚本,请首先使用 scp 将其传输到远程主机,然后使用 ssh 执行它。

scp script.sh host:script.sh
ssh host ./script.sh

答案3

使用配置管理怎么样木偶或者厨师?对于只有一个脚本来说,这可能有点过分了,但如果您需要多个这样的脚本,那么可能值得考虑。

答案4

快速的 bash 'for' 循环可能是最简单的,也许像这样:

for h in host1 host2 host3
do 
   echo $h
   ssh user@$h "ps -ef"
done

当然,cfengine/puppet/chef/capistrano 是更好的配置管理选项。如果您想以交互方式向各种 shell 发送命令,clusterm (http://sourceforge.net/projects/clusterm/) 也是一个不错的选择。

相关内容