基於python編寫,可在多臺服務器上執行命令的工具,也可實現文件複製,提供了基於ssh和scp的多個並行工具
項目:http://code.google.com/p/parallel-ssh/
語法: python
Usage: pscp.pssh [OPTIONS] local remote
經常使用選項: bash
--version:查看版本 -h:主機文件列表,內容格式」[user@]host[:port]」 -H:主機字符串,內容格式」[user@]host[:port]」 -A:手動輸入密碼模式 -i:每一個服務器內部處理信息輸出 -l:登陸使用的用戶名 -p:併發的線程數【可選】 -o:標準輸出文件的輸出目錄(可選) -e:標準錯誤文件的輸出目錄(可選) -t:TIMEOUT 超時時間設置,0無限制【可選】 -O:SSH的選項 -P:打印出服務器返回信息 -v:詳細模式
【例1】經過pssh批量向主機文件列表中的主機執行echo "hello pssh"。 服務器
[root@CentOS7 ~]# cat host.txt 172.20.200.200 192.168.8.61 [root@CentOS7 ~]# pssh -h host.txt -i echo "hello pssh" [1] 16:31:10 [SUCCESS] 192.168.8.61 hello pssh [2] 16:31:10 [SUCCESS] 172.20.200.200 hello pssh
【例2】將標準錯誤和標準正確重定向都保存至本地主機的/app目錄下。 併發
[root@CentOS7 ~]# pssh -h host.txt -o /app/ -e /app/ -i echo "hello pssh" [1] 16:52:32 [SUCCESS] 192.168.8.61 hello pssh [2] 16:52:32 [SUCCESS] 172.20.200.200 hello pssh [root@CentOS7 ~]# ls /app/ 172.20.200.200 192.168.8.61 [root@CentOS7 ~]# cat /app/192.168.8.61 hello pssh
功能:將本地文件批量複製到遠程主機
語法: app
[root@CentOS7 ~]# pscp.pssh --help Usage: pscp.pssh [OPTIONS] local remote
選項:基本與pssh命令一致,不過有個-r選項能夠遞歸複製目錄 ssh
【例1】將本地/etc/fstab文件批量複製到主機列表文件中的主機的/app目錄下 ide
[root@CentOS7 ~]# pscp.pssh -h host.txt /etc/fstab /app/ [1] 17:19:32 [SUCCESS] 192.168.8.61 [2] 17:19:32 [SUCCESS] 172.20.200.200 [root@CentOS7 ~]# pssh -h host.txt -i ls /app/ -l [1] 17:25:14 [SUCCESS] 192.168.8.61 total 4 -rw-r--r-- 1 root root 595 Nov 8 20:27 fstab [2] 17:25:14 [SUCCESS] 172.20.200.200 total 4 -rw-r--r-- 1 root root 595 Nov 9 17:19 fstab
【例2】將本地目錄/test/批量複製到主機文件列表中的主機的/app目錄 工具
[root@CentOS7 ~]# pscp.pssh -h host.txt -r /test/ /app/ [1] 17:23:14 [SUCCESS] 192.168.8.61 [2] 17:23:14 [SUCCESS] 172.20.200.200 [root@CentOS7 ~]# pssh -h host.txt -i ls /app/ -l [1] 17:26:33 [SUCCESS] 192.168.8.61 total 8 -rw-r--r-- 1 root root 595 Nov 8 20:27 fstab drwxr-xr-x 2 root root 4096 Nov 8 20:33 test [2] 17:26:33 [SUCCESS] 172.20.200.200 total 4 -rw-r--r-- 1 root root 595 Nov 9 17:19 fstab drwxr-xr-x 2 root root 48 Nov 9 17:25 test
功能:將遠程主機的文件批量複製到本地,與pscp.pssh命令功能相反。
語法: google
pslurp [-vAr] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-xargs] [-X arg] [-L localdir] remote local(本地名)
選項: 線程
-L 將文件從遠程主機複製到給定的本地目錄,local是下載到本地後的名稱
【例】批量下載目標服務器的passwd文件至本地目錄/app下,並改名爲user
[root@CentOS7 ~]# pslurp -h host.txt -L /app/ /etc/passwd user [1] 17:35:38 [SUCCESS] 192.168.8.61 [2] 17:35:38 [SUCCESS] 172.20.200.200 [root@CentOS7 ~]# tree /app/ /app/ ├── 172.20.200.200 │ └── user └── 192.168.8.61 └── user 2 directories, 2 files