我需要能够在本地运行一个脚本,该脚本将连接到各种服务器并在它们上运行命令。实现这一目标的最佳方法是什么?
答案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/) 也是一个不错的选择。