咱們常常須要ssh
到多個主機上執行相同的命令,爲了提升效率,咱們一般會本身寫個腳本,循環遍歷執行咱們的命令,好比:node
for host in `cat hosts.txt`;do ssh username@$host cmd done
採用這種方式的問題是:python
咱們能夠使用parallel-ssh
工具來實現並行ssh
遠程執行命令,它是一個python編寫能夠在多臺服務器上執行命令的工具,同時支持拷貝文件,目標也是簡化大量計算機的管理,項目地址:https://code.google.com/p/parallel-ssh/
pssh
包安裝5個實用程序:parallel-ssh
、parallel-scp
、parallel-slurp
、parallel-nuke
和parallel-rsync
。每一個實用程序都並行地操做多個主機。ubuntu
使用它首先須要安裝,ubuntu已經集成到軟件包中,直接使用apt-get
安裝:bash
sudo apt-get install pssh
爲了簡便,設置如下alias:服務器
alias pssh='parallel-ssh' alias pscp='parallel-scp'
編寫須要遠程操做的host列表hosts.txt
:ssh
node1 node2 node3 ... node100
使用時須要指定用戶名和輸入用戶密碼(必須全部主機的用戶和密碼相同)以及遠程主機列表,經過-l username
選項指定用戶名,使用-A
選項指定須要輸入密碼,使用-h
指定主機列表,好比在全部的主機執行uptime
操做:工具
pssh -P -l foo -A -h hosts.txt uptime
若咱們當前主機的登陸名爲fgp
,且fgp
可以免密碼登陸hosts.txt
的全部主機,則能夠省略用戶名和密碼。好比,全部的主機執行uptime
操做,並打印結果:this
pssh -P -h hosts.txt uptime
主機太多了,把輸出保存到文件中:google
pssh -o uptime_result -h hosts.txt uptime
傳輸本地文件到全部的主機中:code
pscp -h hosts.txt local_file.txt ~/target_file.txt
以上是簡單使用方法,掌握以上的這些操做足夠完成咱們大多數工做,提升工做效率。
LikeBe the first to like this No labels Edit Labels User icon: Add a picture of yourself Write a comment…