亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

使用PSSH批量管理Linux服務器

2024-09-01 13:55:35
字體:
來源:轉載
供稿:網友

pssh是一款開源的軟件,使用python實現,用于批量ssh操作大批量機器;pssh是一個可以在多臺服務器上執行命令的工具,同時支持拷貝文件,是同類工具中很出色的;比起for循環的做法,我更推薦使用pssh!使用pssh的前提是:必須在本機與其他服務器上配置好密鑰認證訪問(即ssh信任關系)。

下面就說下使用pssh進行批量操作的記錄:

1)安裝pssh
可以yum直接安裝:

[root@bastion-IDC ~]# yum install -y pssh

2)pssh用法

[root@bastion-IDC ~]# pssh --help

-h 執行命令的遠程主機列表文件 
-H user@ip:port 文件內容格式[user@]host[:port] 
-l 遠程機器的用戶名 
-p 一次最大允許多少連接 
-o 輸出內容重定向到一個文件 
-e 執行錯誤重定向到一個文件 
-t 設置命令執行的超時時間 
-A 提示輸入密碼并且把密碼傳遞給ssh(注意這個參數添加后只是提示作用,隨便輸入或者不輸入直接回車都可以) 
-O 設置ssh參數的具體配置,參照ssh_config配置文件 
-x 傳遞多個SSH 命令,多個命令用空格分開,用引號括起來 
-X 同-x 但是一次只能傳遞一個命令 
-i 顯示標準輸出和標準錯誤在每臺host執行完畢后 
-I 讀取每個輸入命令,并傳遞給ssh進程 允許命令腳本傳送到標準輸入

3)pssh實例說明

[root@bastion-IDC ~]# cat hosts.txt    //列表文件內的信息格式是“ip:端口”,如果本機和遠程機器使用的ssh端口一致,則可以省去端口,直接用ip就行。不過建議還是將端口都帶上為好。
192.168.1.101:22
192.168.1.109:22
192.168.1.118:25791
192.168.1.105:25791
如上四臺機器放在一個列表文件hosts.txt內,本機已經和這四臺機器做了ssh無密碼登陸的信任關系
注意:列表文件內的機器必須提前和本機做好ssh信任關系,如果沒有做的話,那么pssh批量執行時,輪到這臺沒有做信任關系的機器時就不會執行。

a)批量執行命令

[root@bastion-IDC ~]# pssh -h hosts.txt -l root -i 'uptime'
[1] 16:05:48 [SUCCESS] 192.168.1.105
03:03:25 up 79 days, 13:44, 0 users, load average: 0.04, 0.01, 0.00
[2] 16:05:48 [SUCCESS] 192.168.1.118
03:03:32 up 75 days, 15:27, 4 users, load average: 0.96, 0.74, 0.45
Stderr: Address 192.168.1.118 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[3] 16:05:48 [SUCCESS] 192.168.1.109
03:03:25 up 61 days, 21:56, 2 users, load average: 0.02, 0.06, 0.18
Stderr: Address 192.168.1.102 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[4] 16:05:48 [SUCCESS] 192.168.1.101
16:03:17 up 35 days, 23:45, 1 user, load average: 0.03, 0.04, 0.01
Stderr: Address 192.168.1.101 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

如果添加-A參數,那么即使提前做了ssh信任關系,還是會提示輸入密碼!

[root@bastion-IDC ~]# pssh -h hosts.txt -l root -i -A 'uptime'
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password:                          //注意這個參數添加后只是提示作用,可以在此隨便輸入或者不輸入直接回車都可以
[1] 16:08:25 [SUCCESS] 192.168.1.105
03:06:03 up 79 days, 13:46, 0 users, load average: 0.00, 0.00, 0.00
[2] 16:08:25 [SUCCESS] 192.168.1.109
03:06:03 up 61 days, 21:59, 2 users, load average: 0.00, 0.04, 0.15
Stderr: Address 192.168.1.102 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[3] 16:08:25 [SUCCESS] 192.168.1.101
16:05:54 up 35 days, 23:47, 1 user, load average: 0.00, 0.02, 0.00
Stderr: Address 192.168.1.101 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[4] 16:08:25 [SUCCESS] 192.168.1.118
03:06:10 up 75 days, 15:29, 4 users, load average: 0.85, 0.78, 0.51
Stderr: Address 192.168.1.118 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[root@bastion-IDC ~]# pssh -h hosts.txt -l root -i -t 10 -o /root/pssh.log 'uptime && date'
[1] 17:01:02 [SUCCESS] 192.168.1.109
03:58:33 up 79 days, 5:58, 1 user, load average: 0.00, 0.00, 0.00
Wed Feb 8 03:58:33 EST 2017
[2] 17:01:02 [SUCCESS] 192.168.1.105
03:58:40 up 79 days, 14:39, 1 user, load average: 0.00, 0.00, 0.00
Wed Feb 8 03:58:40 EST 2017
[3] 17:01:02 [SUCCESS] 192.168.1.101
16:58:31 up 36 days, 40 min, 1 user, load average: 0.10, 0.03, 0.01
Wed Feb 8 16:58:31 CST 2017
Stderr: Address 192.168.1.101 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[4] 17:01:02 [SUCCESS] 192.168.1.118
03:58:47 up 75 days, 16:22, 3 users, load average: 0.20, 0.21, 0.31
Wed Feb 8 03:58:47 EST 2017
Stderr: Address 192.168.1.118 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
[root@bastion-IDC ~]# ll /root/pssh.log/
total 16
-rw-r--r--. 1 root root 100 Feb 8 17:01 192.168.1.101
-rw-r--r--. 1 root root 99 Feb 8 17:01 192.168.1.105
-rw-r--r--. 1 root root 99 Feb 8 17:01 192.168.1.109
-rw-r--r--. 1 root root 100 Feb 8 17:01 192.168.1.118

b)批量上傳文件或目錄(pscp.pssh命令)
批量上傳本地文件/mnt/test.file到遠程服務器上的/tmp目錄:

[root@bastion-IDC ~]# pscp.pssh -l root -h hosts.txt /mnt/test.file /tmp/
[1] 16:18:05 [SUCCESS] 192.168.1.105
[2] 16:18:05 [SUCCESS] 192.168.1.109
[3] 16:18:05 [SUCCESS] 192.168.1.101
[4] 16:18:05 [SUCCESS] 192.168.1.118

批量上傳本地文件/mnt/test.file、/mnt/aa.file、/mnt/bb.file到遠程服務器上的/tmp目錄:

[root@bastion-IDC ~]# pscp.pssh -l root -h hosts.txt /mnt/test.file /mnt/aa.file /mnt/bb.file /tmp/
[1] 16:22:50 [SUCCESS] 192.168.1.109
[2] 16:22:50 [SUCCESS] 192.168.1.105
[3] 16:22:50 [SUCCESS] 192.168.1.118
[4] 16:22:50 [SUCCESS] 192.168.1.101

或者:

[root@bastion-IDC ~]# pscp.pssh -l root -h hosts.txt /mnt/{test.file,aa.file,bb.file} /tmp/
[1] 16:23:44 [SUCCESS] 192.168.1.109
[2] 16:23:44 [SUCCESS] 192.168.1.105
[3] 16:23:44 [SUCCESS] 192.168.1.101
[4] 16:23:44 [SUCCESS] 192.168.1.118

批量上傳本地目錄/mnt/zhong到遠程服務器上的/tmp目錄(上傳目錄需要添加-r參數):

[root@bastion-IDC ~]# pscp.pssh -l root -h hosts.txt -r /mnt/zhong /tmp/
[1] 16:19:36 [SUCCESS] 192.168.1.109
[2] 16:19:36 [SUCCESS] 192.168.1.105
[3] 16:19:36 [SUCCESS] 192.168.1.101
[4] 16:19:36 [SUCCESS] 192.168.1.118

批量上傳本地目錄/mnt/zhong、/mnt/aa、/mnt/vv到遠程服務器上的/tmp目錄

[root@bastion-IDC ~]# pscp.pssh -l root -h hosts.txt -r /mnt/zhong /mnt/aa /mnt/vv /tmp/
[1] 16:21:02 [SUCCESS] 192.168.1.105
[2] 16:21:02 [SUCCESS] 192.168.1.109
[3] 16:21:02 [SUCCESS] 192.168.1.101
[4] 16:21:02 [SUCCESS] 192.168.1.118

或者:

[root@bastion-IDC ~]# pscp.pssh -l root -h hosts.txt -r /mnt/{zhong,aa,vv} /tmp/
[1] 16:22:00 [SUCCESS] 192.168.1.109
[2] 16:22:00 [SUCCESS] 192.168.1.105
[3] 16:22:00 [SUCCESS] 192.168.1.101
[4] 16:22:00 [SUCCESS] 192.168.1.118

c)批量下載文件或目錄(pslurp命令)
批量下載服務器上的某文件到本地,不用擔心重名問題,因為pssh已經建立了以文件列表內的ip為名稱的目錄來存放下載的文件:

[root@bastion-IDC ~]# pslurp -l root -h hosts.txt /etc/hosts .
[1] 16:32:01 [SUCCESS] 192.168.1.109
[2] 16:32:01 [SUCCESS] 192.168.1.105
[3] 16:32:01 [SUCCESS] 192.168.1.101
[4] 16:32:01 [SUCCESS] 192.168.1.118
[root@bastion-IDC ~]# ll
total 123
drwxr-xr-x. 2 root root 4096 Feb 8 16:32 192.168.1.101
drwxr-xr-x. 2 root root 4096 Feb 8 16:32 192.168.1.105
drwxr-xr-x. 2 root root 4096 Feb 8 16:32 192.168.1.109
drwxr-xr-x. 2 root root 4096 Feb 8 16:32 192.168.1.118
[root@bastion-IDC ~]# ll 192.168.1.101
total 4
-rw-r--r--. 1 root root 224 Feb 8 16:32 hosts
[root@bastion-IDC ~]# ll 192.168.1.109
total 4
-rw-r--r--. 1 root root 252 Feb 8 16:32 hosts
[root@bastion-IDC ~]# ll 192.168.1.105
total 4
-rw-r--r--. 1 root root 252 Feb 8 16:32 hosts
[root@bastion-IDC ~]# ll 192.168.1.118
total 4
-rw-r--r--. 1 root root 212 Feb 8 16:32 hosts

另外特別注意:
上面的批量下載操作,只能下載到本地的當前目錄下,不能在命令中跟指定的路徑:

[root@bastion-IDC ~]# pslurp -l root -h hosts.txt /etc/hosts /mnt/
[1] 16:34:14 [FAILURE] 192.168.1.109 Exited with error code 1
[2] 16:34:14 [FAILURE] 192.168.1.105 Exited with error code 1
[3] 16:34:14 [FAILURE] 192.168.1.101 Exited with error code 1
[4] 16:34:14 [FAILURE] 192.168.1.118 Exited with error code 1

要想下載到本機的/mnt目錄下,正確的做法是先切換到/mnt目錄下,然后再執行下載命令:(列表文件要跟全路徑)

[root@bastion-IDC ~]# cd /mnt/
[root@bastion-IDC mnt]# pslurp -l root -h /root/hosts.txt /etc/hosts ./
[1] 16:34:34 [SUCCESS] 192.168.1.109
[2] 16:34:34 [SUCCESS] 192.168.1.105
[3] 16:34:34 [SUCCESS] 192.168.1.118
[4] 16:34:34 [SUCCESS] 192.168.1.101
[root@bastion-IDC mnt]# ll
total 16
drwxr-xr-x. 2 root root 4096 Feb 8 16:34 192.168.1.101
drwxr-xr-x. 2 root root 4096 Feb 8 16:34 192.168.1.105
drwxr-xr-x. 2 root root 4096 Feb 8 16:34 192.168.1.109
drwxr-xr-x. 2 root root 4096 Feb 8 16:34 192.168.1.118

上面是批量下載文件,要是批量下載目錄,只需要添加一個-r參數即可!

[root@bastion-IDC mnt]# pslurp -l root -h /root/hosts.txt -r /home/ ./
[1] 16:39:05 [SUCCESS] 192.168.1.109
[2] 16:39:05 [SUCCESS] 192.168.1.105
[3] 16:39:05 [SUCCESS] 192.168.1.101
[4] 16:39:05 [SUCCESS] 192.168.1.118
[root@bastion-IDC mnt]# ll 192.168.1.101
total 8
drwxr-xr-x. 6 root root 4096 Feb 8 16:39 home
-rw-r--r--. 1 root root 224 Feb 8 16:38 hosts
[root@bastion-IDC mnt]# ll 192.168.1.*
192.168.1.101:
total 8
drwxr-xr-x. 6 root root 4096 Feb 8 16:39 home
-rw-r--r--. 1 root root 224 Feb 8 16:38 hosts
192.168.1.105:
total 8
drwxr-xr-x. 4 root root 4096 Feb 8 16:39 home
-rw-r--r--. 1 root root 252 Feb 8 16:38 hosts
192.168.1.109:
total 8
drwxr-xr-x. 4 root root 4096 Feb 8 16:39 home
-rw-r--r--. 1 root root 252 Feb 8 16:38 hosts
192.168.1.118:
total 8
drwxr-xr-x. 3 root root 4096 Feb 8 16:39 home
-rw-r--r--. 1 root root 212 Feb 8 16:38 hosts

d)批量同步(prsync命令)
同步本機/mnt/test目錄下的文件或目錄到遠程機器的/mnt/test路徑下

[root@bastion-IDC ~]# prsync -l root -h hosts.txt -r /mnt/test/ /mnt/test/
[1] 16:46:41 [SUCCESS] 192.168.1.109
[2] 16:46:41 [SUCCESS] 192.168.1.105
[3] 16:46:41 [SUCCESS] 192.168.1.118
[4] 16:46:41 [SUCCESS] 192.168.1.101

同步本機/mnt/test目錄下的文件或目錄到遠程機器的/mnt路徑下

[root@bastion-IDC ~]# prsync -l root -h hosts.txt -r /mnt/test/ /mnt/
[1] 16:47:40 [SUCCESS] 192.168.1.109
[2] 16:47:40 [SUCCESS] 192.168.1.105
[3] 16:47:45 [SUCCESS] 192.168.1.101
[4] 16:47:46 [SUCCESS] 192.168.1.118

注意:
上面批量同步目錄操作是將本機對應目錄數據同步到遠程機器上,遠程機器上對于目錄下多余的文件也會保留(不會刪除多余文件)

同理,批量同步文件操作,去掉-r參數,
注意:同步文件的時候,其實就是完全覆蓋,遠程機器對應文件內的文件會被全部替換!
如下:
同步本機的/mnt/test/file文件內容到遠程服務器/mnt/test/file文件內

[root@bastion-IDC ~]# prsync -l root -h hosts.txt /mnt/test/file /mnt/test/file 
[1] 16:53:54 [SUCCESS] 192.168.1.109
[2] 16:53:54 [SUCCESS] 192.168.1.105
[3] 16:53:54 [SUCCESS] 192.168.1.101
[4] 16:53:54 [SUCCESS] 192.168.1.118
[root@bastion-IDC ~]# prsync -l root -h hosts.txt /mnt/test/file /mnt/aaa
[1] 16:54:03 [SUCCESS] 192.168.1.109
[2] 16:54:03 [SUCCESS] 192.168.1.105
[3] 16:54:03 [SUCCESS] 192.168.1.101
[4] 16:54:04 [SUCCESS] 192.168.1.118

e)批量kill遠程機器上的進程(pnuke命令)
比如批量kill掉遠程機器上的nginx進程

[root@bastion-IDC ~]# pnuke -h hosts.txt -l root nginx
[1] 17:09:14 [SUCCESS] 192.168.1.109 
[2] 17:09:14 [SUCCESS] 192.168.1.105 
[3] 17:09:15 [SUCCESS] 192.168.1.118 
[4] 17:09:15 [SUCCESS] 192.168.1.101

 

注:相關教程知識閱讀請移步到服務器教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲视频电影图片偷拍一区| 日韩电视剧在线观看免费网站| 成人国产精品久久久久久亚洲| 中文字幕久久久| 日韩av理论片| 成人精品一区二区三区电影黑人| 91久久精品一区| 最近2019中文免费高清视频观看www99| 91精品国产高清久久久久久91| 亚洲自拍偷拍视频| 4388成人网| 亚洲精品成人久久久| 亚洲一区二区三区在线视频| 九九精品视频在线观看| 96精品久久久久中文字幕| 在线视频一区二区| 国产日产亚洲精品| 国产精品亚洲美女av网站| 精品女厕一区二区三区| 久久精品成人欧美大片古装| 色老头一区二区三区| 亚洲精品97久久| 日韩精品在线第一页| 91成人性视频| 欧美富婆性猛交| 国产亚洲精品美女久久久久| 国内伊人久久久久久网站视频| 亚洲精选一区二区| 国产69精品久久久久久| 国产精品免费观看在线| 成人久久18免费网站图片| 欧美精品激情blacked18| 亚洲开心激情网| 日韩成人久久久| 欧美激情奇米色| 国产精品视频公开费视频| 日韩高清av一区二区三区| 最近2019中文字幕mv免费看| 91久久夜色精品国产网站| 欧美肥老妇视频| 国产精品91在线观看| 亚洲精品电影在线观看| 亚洲视频一区二区三区| 久久噜噜噜精品国产亚洲综合| 日韩美女视频免费看| 亚洲欧美制服丝袜| 日韩成人中文字幕在线观看| 成人夜晚看av| 亚洲国产福利在线| 欧美激情成人在线视频| 欧美精品精品精品精品免费| 青青草原一区二区| 亚洲综合日韩中文字幕v在线| 亚洲精品一区二三区不卡| 中文字幕日韩在线播放| 日韩成人在线免费观看| 欧美丝袜一区二区| 亚洲第一区第一页| 久久精品久久精品亚洲人| 激情久久av一区av二区av三区| 国产精品一区二区女厕厕| 国产主播欧美精品| 在线播放精品一区二区三区| 欧美高清视频免费观看| 亚洲精品第一国产综合精品| 4k岛国日韩精品**专区| 欧美www视频在线观看| 日韩欧美一区二区在线| 一区二区三区四区精品| 亚洲一区美女视频在线观看免费| 中文欧美在线视频| 日韩精品视频免费专区在线播放| 韩日欧美一区二区| 久久久免费电影| 一区二区三区无码高清视频| 中文字幕精品久久| 欧美久久久精品| 日韩成人小视频| 神马久久久久久| 538国产精品视频一区二区| 欧美激情videoshd| 欧美日韩裸体免费视频| 亚洲自拍小视频| 欧美天天综合色影久久精品| 亚洲黄色在线看| 精品久久久久久中文字幕大豆网| 国产成人精品在线观看| 欧美巨乳在线观看| 亚洲欧美制服综合另类| 激情久久av一区av二区av三区| 国外日韩电影在线观看| 日韩美女中文字幕| 中文字幕久久精品| 亚洲少妇中文在线| 国产精品视频精品视频| 亚洲小视频在线| 亚洲国产一区二区三区在线观看| 欧美日韩免费网站| 亚洲日本中文字幕免费在线不卡| 欧美激情中文网| 91豆花精品一区| 亚洲国产精品人人爽夜夜爽| 欧美高清理论片| 精品香蕉在线观看视频一| 亚洲电影成人av99爱色| 在线观看国产精品日韩av| 国产男女猛烈无遮挡91| 一本色道久久综合亚洲精品小说| 欧美猛交免费看| 国产精品成人va在线观看| 国产日韩在线播放| 91久久在线播放| 欧美视频在线视频| 欧美大片免费观看| 亚洲一区二区久久久久久久| 亚洲成色777777在线观看影院| 97超碰蝌蚪网人人做人人爽| 国产精品精品一区二区三区午夜版| 日韩av片电影专区| 色www亚洲国产张柏芝| 久久久女人电视剧免费播放下载| 日韩国产高清视频在线| 日韩电影免费在线观看| 国内精品久久影院| 国产原创欧美精品| 亚洲欧美日韩视频一区| 在线午夜精品自拍| 欧美日韩精品在线播放| 久热精品视频在线观看一区| 国产精品狼人色视频一区| 日韩三级影视基地| 国产精品青草久久久久福利99| 国产亚洲欧美日韩一区二区| 91精品国产91久久久久久最新| 疯狂蹂躏欧美一区二区精品| 国产欧美日韩精品在线观看| 亚洲一级黄色av| 91中文精品字幕在线视频| 午夜精品一区二区三区在线| 国产91对白在线播放| 日韩欧美中文第一页| 欧美在线视频免费| 91麻豆国产语对白在线观看| 亚洲第一视频在线观看| 91久热免费在线视频| 国产欧美精品va在线观看| 久久久精品在线| 国产精品视频一区二区三区四| 国产精品人成电影| xxxx性欧美| 国产成一区二区| 成人a在线视频| 国产精品视频男人的天堂| 国产亚洲在线播放| 亚洲午夜精品久久久久久性色| 色偷偷噜噜噜亚洲男人的天堂| 亚洲女同性videos| 精品国产一区久久久| 久久精品男人天堂| 欧美老少配视频| 中文字幕亚洲第一| 久久99精品视频一区97| 欧美日韩国产精品一区二区三区四区| 欧美在线免费看|