2017-05-29 157 views
0

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

我在想并行运行命令,但我不知道如何。例如,如何在没有逐一登录到服务器的情况下查看df -h的输出。

回答

0

你可以用-t标志运行ssh来打开ssh会话,运行命令然后关闭会话。但为了使其完全自动化,您应该将登录过程自动化到每台服务器,以便您不必为每台服务器输入密码。

因此,要在远程服务器上运行df -h,然后关闭会话,您需要运行ssh -t [email protected] "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

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密钥。