如何连接到多个服务器以运行相同的查询?

时间:2013-12-27 04:32:01

标签: linux ssh

我有4台服务器,我们有相同模式的日志文件。对于每个serch /查询,我需要逐个登录所有服务器并执行命令。

是否可以提供一些命令,以便它会自动逐个登录所有这些服务器并从每个服务器获取输出?

我需要做哪些配置,设置等才能使其正常工作。 我是Linux Domain的新手。

3 个答案:

答案 0 :(得分:4)

正如您的问题评论中所建议的那样,有许多工具可以帮助您在多台计算机上执行任务。我将添加到此列表并建议Ansible。它旨在通过ssh以非常简单的方式执行所有交互,并且配置非常少。

https://github.com/ansible/ansible

如果您要在~/.ssh/config文件中定义server-1和server-2,那么ansible配置就像

一样简单
[myservers]
server-1
server-2

然后在组

上运行命令
$ ansible myservers -a uptime

答案 1 :(得分:2)

如果您的服务器被称为eeniemeanieminiemoe,则只需执行

for server in eenie meanie minie moe; do
    ssh "$server" grep 'intrusion attempt' /var/log/firewall.log
done

grep命令不会显示报告结果的服务器;也许可以用ssh "$server" sed -n "/intrusion attempt/s/^/$server: /p" /var/log/firewall.log

替换它

答案 2 :(得分:-1)

使用https://sealion.com。您只需执行一个脚本,它将在您的服务器中安装代理并开始收集输出。它有一个方便的Web界面,可以查看所有服务器的输出。