溫馨提示×

如何利用pssh在Linux上批量執(zhí)行命令

小樊
103
2024-08-28 17:21:20

pssh(Parallel SSH)是一個(gè)用于在多臺(tái)遠(yuǎn)程Linux服務(wù)器上并行執(zhí)行命令的工具

  1. 安裝pssh

    對于Debian/Ubuntu系統(tǒng),使用以下命令安裝:

    sudo apt-get install pssh
    

    對于RHEL/CentOS系統(tǒng),使用以下命令安裝:

    sudo yum install pssh
    
  2. 創(chuàng)建一個(gè)包含目標(biāo)服務(wù)器列表的文件。每個(gè)服務(wù)器一行,格式為[user@]host[:port]。例如,創(chuàng)建一個(gè)名為servers.txt的文件,內(nèi)容如下:

    user1@server1.example.com
    user2@server2.example.com:2222
    server3.example.com
    
  3. 使用pssh執(zhí)行命令。以下是一些常用的pssh選項(xiàng):

    • -h:指定包含服務(wù)器列表的文件。
    • -l:指定SSH登錄用戶名(如果未在服務(wù)器列表文件中指定)。
    • -p:設(shè)置并行進(jìn)程數(shù)(默認(rèn)為32)。
    • -t:設(shè)置SSH連接超時(shí)(以秒為單位,默認(rèn)為0)。
    • -o:指定輸出文件目錄。
    • -e:指定錯(cuò)誤輸出文件目錄。
    • -A:啟用密碼認(rèn)證(不推薦,因?yàn)榘踩暂^低)。
    • -i:忽略錯(cuò)誤(繼續(xù)執(zhí)行其他服務(wù)器上的命令)。
    • -O:設(shè)置SSH選項(xiàng)(例如,禁用HostKey檢查:-O StrictHostKeyChecking=no)。

    示例命令:

    pssh -h servers.txt -l myuser -p 10 -t 60 "df -h"
    

    這將在servers.txt中列出的服務(wù)器上并行執(zhí)行df -h命令,使用myuser作為SSH登錄用戶名,最多有10個(gè)并行進(jìn)程,SSH連接超時(shí)為60秒。

注意:為了避免在執(zhí)行命令時(shí)輸入密碼,建議使用SSH密鑰對進(jìn)行身份驗(yàn)證。在所有目標(biāo)服務(wù)器上將公鑰添加到~/.ssh/authorized_keys文件中,并確保私鑰在本地可用。

0