运行命令多个linux服务器

时间:2017-05-29 08:14:16

标签: linux ssh automation

我的一项工作是每天检查多台Linux服务器的运行状况。我正在考虑一种自动执行此任务的方法(无需每天登录每个服务器)。顺便说一句,我是新手系统管理员。最初,我的想法是设置一个可以运行脚本并通过电子邮件发送输出的cron作业。不幸的是,目前无法从服务器发送邮件。

我正在考虑并行运行命令,但我不知道如何。例如,如何在不逐个登录服务器的情况下查看Table6的输出。

3 个答案:

答案 0 :(得分:1)

您可以使用-t标志运行ssh以打开ssh会话,运行命令然后关闭会话。但为了实现完全自动化,您应该将登录过程自动化到每个服务器,这样您就不需要为每个服务器键入密码。

因此,要在远程服务器上运行df -h,然后关闭会话,您将运行ssh -t root@server.com "df -h"。然后,您可以根据需要处理该输出。

自动执行此操作的一种方法是编写一个bash script,为每个服务器运行此命令,并处理输出以检查服务器的运行状况。

有关-t标志的更多信息,或者如何自动执行ssh的登录过程。

https://www.novell.com/coolsolutions/tip/16747.html

https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password

答案 1 :(得分:0)

您可以使用ssh隧道或仅为此目的使用ssh。使用ssh隧道,您可以将输出重定向到您的计算机,或者作为替代方案,您可以在计算机上使用远程命令运行ssh,然后在计算机上获得输出。

请查看以下页面以进一步阅读:

http://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html

https://www.google.hu/amp/s/www.cyberciti.biz/faq/unix-linux-execute-command-using-ssh/amp/

如果您想避免手动登录,请使用ssh密钥。

答案 2 :(得分:0)

创建文件/ etc / sxx / hosts

像这样填充:

[grp_ips]
1.1.1.1
2.2.2.2
3.3.3.3

在所有计算机上共享ssh密钥。

从包中安装sxx:

https://github.com/ericcurtin/sxx/releases

然后像这样运行命令:

sxx username@grp_ips "whatever bash command"