我的一项工作是每天检查多台Linux服务器的运行状况。我正在考虑一种自动执行此任务的方法(无需每天登录每个服务器)。顺便说一句,我是新手系统管理员。最初,我的想法是设置一个可以运行脚本并通过电子邮件发送输出的cron作业。不幸的是,目前无法从服务器发送邮件。
我正在考虑并行运行命令,但我不知道如何。例如,如何在不逐个登录服务器的情况下查看Table6
的输出。
答案 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,然后在计算机上获得输出。
请查看以下页面以进一步阅读:
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"