目錄
- 創(chuàng)建 Shell 腳本
- 創(chuàng)建 PSSH 主機文件
- 通過腳本在多個 Linux 服務器上運行命令
可以使用 pssh(并行 ssh)程序,這是一個用于在多個主機上并行執(zhí)行 ssh 的命令行實用程序。使用它,您可以從 shell 腳本向所有 ssh 進程發(fā)送輸入。
創(chuàng)建 Shell 腳本
因此,您需要首先準備一個腳本,其中包含您要在不同服務器上執(zhí)行的 Linux 命令。在此示例中,我們將編寫一個腳本,該腳本將從多個服務器收集以下信息:
- 檢查服務器的正常運行時間
- 檢查誰登錄以及他們在做什么
- 根據(jù)內(nèi)存使用情況列出前 5 個正在運行的進程。
首先使用您喜歡的編輯器創(chuàng)建一個名為 commands.sh 的腳本。
# vi commands.sh
接下來,將以下命令添加到腳本中,如圖所示。
#!/bin/bash ############################################################################### #Script Name : commands.sh #Description : execute multiple commands on multiple servers #Author : Aaron Kili Kisinga #Email : [email protected] ################################################################################ echo # show system uptime uptime echo # show who is logged on and what they are doing who echo # show top 5 processe by RAM usage ps -eo cmd,pid,ppid,%mem,%cpu --sort=-%mem | head -n 6 exit 0
保存文件并關(guān)閉它。然后如圖所示使腳本可執(zhí)行。
# chmod +x commands.sh
創(chuàng)建 PSSH 主機文件
接下來,在 hosts.txt 文件中添加要在其上運行命令的服務器列表,格式為 [user@]host[:port] 或僅提供服務器 IP 地址。
但我們建議您使用可以在 .ssh/config 文件中指定的 ssh 別名,如如何配置自定義 ssh 連接以簡化遠程訪問中所述。
這種方法更有效和可靠,它允許您為每個遠程服務器指定配置選項(如主機名、標識文件、端口、用戶名等)。 以下是我們的示例 ssh 主機別名文件,也就是用戶特定的 ssh 配置文件。
# vi ~/.ssh/config
接下來,創(chuàng)建一個 hosts.txt 文件,在這里您可以簡單地指定別名(使用 .ssh/config 文件中的 Host 關(guān)鍵字定義的名稱),如圖所示。
# vi hosts.txt
添加服務器別名。
server1 server2 server3
通過腳本在多個 Linux 服務器上運行命令
現(xiàn)在通過指定 hosts.txt 文件以及包含要在多個遠程服務器上運行的多個命令的腳本來運行以下 pssh 命令。
# pssh -h hosts.txt -P -I<./commands.sh
上述命令中使用的標志的含義:
-h
– 讀取主機文件。-P
– 告訴 pssh 在輸出到達時顯示輸出。-I
– 讀取輸入并發(fā)送到每個 ssh 進程。