2017-05-29 203 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密鑰。