我的工作之一是每天检查多台Linux服务器的运行状况。我正在想办法自动执行此任务(无需每天都登录到每台服务器)。顺便说一句,我是一个新手系统管理员。最初,我的想法是设置一个可以运行脚本并通过电子邮件发送输出的cron作业。不幸的是,截至目前无法从服务器发送邮件。运行命令多个linux服务器
我在想并行运行命令,但我不知道如何。例如,如何在没有逐一登录到服务器的情况下查看df -h
的输出。
我的工作之一是每天检查多台Linux服务器的运行状况。我正在想办法自动执行此任务(无需每天都登录到每台服务器)。顺便说一句,我是一个新手系统管理员。最初,我的想法是设置一个可以运行脚本并通过电子邮件发送输出的cron作业。不幸的是,截至目前无法从服务器发送邮件。运行命令多个linux服务器
我在想并行运行命令,但我不知道如何。例如,如何在没有逐一登录到服务器的情况下查看df -h
的输出。
你可以用-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
你可以使用ssh隧道或简单地ssh来达到这个目的。使用ssh隧道,您可以将输出重定向到您的机器,或者作为替代方案,您可以在机器上使用远程命令运行ssh,然后在机器上获取输出。
请查看以下页面进一步阅读:
https://www.google.hu/amp/s/www.cyberciti.biz/faq/unix-linux-execute-command-using-ssh/amp/
如果你想避免手动登录,使用SSH密钥。