首頁 > 軟體

輕量級自動化運維工具pssh與pslurp

2020-06-16 16:28:35

pssh

基於Python編寫,可在多台伺服器上執行命令的工具,也可實現檔案複製,提供了基於ssh和scp的多個並行工具
專案:http://code.google.com/p/parallel-ssh/
語法:

Usage: pscp.pssh [OPTIONS] local remote

常用選項:

--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
註:當不支援ssh的key認證時,可通過-A選項,手動輸入密碼認證批次執行指令。

【例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

pscp.pssh命令

功能:將本地檔案批次複製到遠端主機
語法:

[root@CentOS7 ~]# pscp.pssh --help
Usage: pscp.pssh [OPTIONS] local remote

選項:基本與pssh命令一致,不過有個-r選項可以遞回複製目錄

【例1】將本地/etc/fstab檔案批次複製到主機列表檔案中的主機的/app目錄下

[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

pslurp命令

功能:將遠端主機的檔案批次複製到本地,與pscp.pssh命令功能相反。
語法:

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

IT145.com E-mail:sddin#qq.com