使用 Parallel SSH 管理、同時對多台機器執行命令

當機器越來越多, 要同時執行命令, ex: uptime、apt-get update... 等等, 就會很費時, 此時可以使用 pssh (Parallel SSH) 來對多台機器同時下命令~

註: DSH 也可以考慮, 可參考此篇: 管理多台機器的好工具 dsh (分散式 Shell)

使用 Parallel SSH 管理、同時對多台機器執行命令

Parallel SSH 官方網站

Parallel SSH 安裝

  • $ sudo apt-get install pssh # 或 git clone http://code.google.com/p/parallel-ssh/
  • 註: 於 Debian、Ubuntu Linux 將 pssh 等命令名字使用全名 (怕名字衝突)
  • parallel-ssh = pssh
  • parallel-scp = pscp
  • parallel-rsync = prsync
  • parallel-nuke = pnuke
  • parallel-slurp = pslurp
  • 取自: /usr/share/doc/pssh/README.Debian

Parallel SSH 說明

Parallel SSH 程式的作用, 可參考此篇: Automating ssh and scp across multiple hosts, 下述英文摘錄自此篇:

  • parallel-slurp
    • This command allows you to copy files from multipl remote hosts to the local system. We'll demonstrate the usage shortly.
    • 從多台機器 scp 檔案到 local 本機
  • parallel-ssh
    • This command allows you to run commands upon a number of systems in parallel. We'll also demonstrate this command shortly.
    • 將命令送到多台去執行
  • parallel-nuke
    • This command likes you kill processes on multiple remote systems.
    • 到多台機器去 kill process
  • parallel-scp
    • This is the opposite of parallel-slirp and allows you to copy a file, or files, to multiple remote systems.
    • 和 parallel-slirp 相反, 將 local 的檔案 scp 到多台機器去

Parallel SSH 執行範例

基本範例如下:

  • $ pssh -h hosts.txt -l username -o /tmp/foo uptime # 將輸出結果放置 /tmp/foo
  • $ pssh -h hosts.txt -A -i uptime # -A 若沒有 key 會需要輸入密碼

假設 sshgroup 已經將機器作過分類, ex: sshgroup/db.txt, sshgroup/fe.txt, 檔案內容為機器 hostname, 用斷行(\n)分隔.

  • $ parallel-ssh -h sshgroup/db.txt -A -P uptime
  • -A 沒有 key 可以輸入密碼
  • -P print message

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料