我的工作之一是每天檢查多臺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密鑰。