当前位置: 首页 > 工具软件 > pssh > 使用案例 >

Lunix常用命令-pssh简介及安装

施文彬
2023-12-01

一、pssh简介及安装

  首先我们来了解下什么是pssh,它是干嘛用的?pssh是一个python编写可以在多台服务器上执行命令的工具,也可以实现文件复制。换而言之就是一个批量管理多台服务器的一个小工具。常常我们有这样的经历,就是需要在很多台主机上执行同一命令,在以前我们需要编写一个脚本,然后写一个循环,然后写上要执行的命令,感觉挺麻烦的,有了pssh这个工具,很多事情都不需要我们编写脚本去完成了,用pssh管理多台主机,就好像在自己主机上执行命令一样,我们不再编写脚本就可以实现管理多台主机。接下来我们来安装使用pssh吧

  1、查看pssh包信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

[root@test ~]# yum info pssh

Loaded plugins: fastestmirror, security

Loading mirror speeds from cached hostfile

Available Packages

Name        : pssh

Arch        : noarch

Version     : 2.3.1

Release     : 5.el6

Size        : 50 k

Repo        : epel

Summary     : Parallel SSH tools

URL         : http://code.google.com/p/parallel-ssh/

License     : BSD

Description : This package provides various parallel tools based on ssh and scp.

            : Parallell version includes:

            :  o ssh : pssh

            :  o scp : pscp

            :  o nuke : pnuke

            :  o rsync : prsync

            :  o slurp : pslurp

[root@test ~]#

  说明:可以看到pssh这个包主要功能就是提供了各种基于ssh和scp的命令行工具,包里包含了pssh、pscp、pnuke、prsync、pslurp,这五个工具。这个包来源epel,所以在查看和安装之前请先配好自己的epel源。

  2、安装pssh包

1

[root@test ~]# yum install -y pssh

  二、pssh工具的使用

pssh命令选项有如下:

  --version:查看版本信息

1

2

3

[root@test ~]# pssh --version

2.3.1

[root@test ~]#

  -h:主机文件列表,内容格式"[user@]host[:port]"

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root@docker test]#cat > iplist << EOF

> root@192.168.0.128

> root@192.168.0.217

> qiuhom@192.168.0.218

> EOF

[root@docker test]#cat iplist

root@192.168.0.128

root@192.168.0.217

qiuhom@192.168.0.218

[root@docker test]#pssh -h iplist 'ls -l'

[1] 22:08:50 [SUCCESS] root@192.168.0.128

[2] 22:08:50 [SUCCESS] root@192.168.0.217

[3] 22:08:50 [SUCCESS] qiuhom@192.168.0.218

[root@docker test]#

  说明:以上命令的意思是在我iplist定义的主机上执行ls -l命令,这里要说一下,pssh默认是基于key认证连接远程主机,所以我在执行上面的命令没有输入口令。

  -H:主机字符串,内容格式"[user@]host[:port]"。

1

2

3

[root@docker ~]#pssh -H 192.168.0.128 'ls /' 

[1] 22:17:40 [SUCCESS] 192.168.0.128

[root@docker ~]#

  说明:-H是指定某一台主机的选项,当然要指定多台主机,可以用-H一一指定,也可以用-H 指定很多主机,但是每个主机用空格隔开,且多个主机要用引号引起来。

  -A:手动输入密码模式

1

2

3

4

5

6

[root@docker ~]#pssh -H qiuhom@192.168.0.99:41319 -A 'ls'  

Warning: do not enter your password if anyone else has superuser

privileges or access to your account.

Password:

[1] 22:40:20 [SUCCESS] qiuhom@192.168.0.99:41319

[root@docker ~]#

  说明:pssh默认是用ssh的key验证来执行命令,如果我们要管理没有做SSHkey验证的主机,那么我们可以用-A来指定手动输入密码模式,有关ssh基于key认证登录,请参考本人博客https://www.cnblogs.com/qiuhom-1874/p/11783371.html

  -i:每个服务器内部处理信息输出

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

[root@docker ~]#pssh -h test/iplist -i 'ip addr show'

[1] 22:44:31 [SUCCESS] root@192.168.0.128

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:41:ff:c0 brd ff:ff:ff:ff:ff:ff

    inet 192.168.0.128/24 brd 192.168.0.255 scope global eth1

    inet6 fe80::20c:29ff:fe41:ffc0/64 scope link

       valid_lft forever preferred_lft forever

[2] 22:44:31 [FAILURE] qiuhom@192.168.0.218 Exited with error code 127

Stderr: bash: ip: command not found

[3] 22:44:31 [SUCCESS] root@192.168.0.217

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

    inet 127.0.0.1/8 scope host lo

       valid_lft forever preferred_lft forever

    inet6 ::1/128 scope host

       valid_lft forever preferred_lft forever

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

    link/ether 00:0c:29:98:0a:46 brd ff:ff:ff:ff:ff:ff

    inet 192.168.0.217/24 brd 192.168.0.255 scope global dynamic ens33

       valid_lft 4184sec preferred_lft 4184sec

    inet6 fe80::f565:ff52:6ab3:b9da/64 scope link

       valid_lft forever preferred_lft forever

3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN qlen 1000

    link/ether 52:54:00:f8:82:a0 brd ff:ff:ff:ff:ff:ff

    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

       valid_lft forever preferred_lft forever

4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN qlen 1000

    link/ether 52:54:00:f8:82:a0 brd ff:ff:ff:ff:ff:ff

[root@docker ~]#

  说明:在我们不指定选项-i,pssh默认只输出执行命令的成功与失败状态,并不会把执行的结果信息打印出来。使用-i我们可以把在每台主机上执行命令的结果和命令执行成功与否一并显示。上面有一个centos6的主机上没有装iproute包所以 默认没有ip这个命令,所以命令没有执行成功。

  -l登录使用的用户名

1

2

3

4

5

6

7

8

9

10

[root@docker ~]#pssh -H 192.168.0.218 -l qiuhom -i 'whoami'

[1] 22:49:46 [SUCCESS] 192.168.0.218

qiuhom

[root@docker ~]#pssh -H 192.168.0.218 -l root -i -A 'whoami'  

Warning: do not enter your password if anyone else has superuser

privileges or access to your account.

Password:

[1] 22:50:03 [SUCCESS] 192.168.0.218

root

[root@docker ~]#

  说明:-l选项就是指定以那个用户执行命令,这个指定的用户是远程主机上的用户。通常-l(小写L) 与-A配合使用。

  -o:输出的文件目录

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

[root@docker ~]#pssh -o /root/dr1/ -h test/iplist 'ls /'

[1] 23:02:44 [SUCCESS] root@192.168.0.128

[2] 23:02:44 [SUCCESS] qiuhom@192.168.0.218

[3] 23:02:44 [SUCCESS] root@192.168.0.217

[root@docker ~]#tree /root/dr1/

/root/dr1/

├── qiuhom@192.168.0.218

├── root@192.168.0.128

└── root@192.168.0.217

 

0 directories, 3 files

[root@docker ~]#cat /root/dr1/qiuhom@192.168.0.218

bin

boot

dev

etc

home

lib

lib64

lost+found

media

misc

mnt

net

opt

proc

root

sbin

selinux

srv

sys

tmp

usr

var

[root@docker ~]#

  说明:-o是指定把命令执行的结果输出到以主机命名的文件存放地。也就是说命令执行后的结果保存在以主机命名的一个文件里,-o就是指定一个目录存放这些文件的。

  -t:TIMEOUT超时时间设置,0无限

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

[root@docker ~]#pssh -t 3 -h test/iplist -i 'ping 8.8.8.8'

[1] 23:09:39 [FAILURE] root@192.168.0.128 Timed out, Killed by signal 9

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=53.5 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=53.6 ms

64 bytes from 8.8.8.8: icmp_seq=4 ttl=52 time=53.5 ms

[2] 23:09:39 [FAILURE] root@192.168.0.217 Timed out, Killed by signal 9

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=54.2 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=53.8 ms

64 bytes from 8.8.8.8: icmp_seq=3 ttl=52 time=53.4 ms

[3] 23:09:39 [FAILURE] qiuhom@192.168.0.218 Timed out, Killed by signal 9

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=53.2 ms

64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=53.9 ms

64 bytes from 8.8.8.8: icmp_seq=3 ttl=52 time=53.6 ms

[root@docker ~]#

  以上就是pssh工具的常用选项说明以及用法

  三、pscp.pssh命令选项说明以及使用

pscp.pssh功能是将本地文件批量复制到远程主机

命令用法: 

1

pscp.pssh [-vAr] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] local remote

  说明:pscp.pssh以上很多选项和pssh用法是一样的,比如-A -H -h -l等等

  -v:显示复制过程

  -r:递归复制目录

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

[root@docker ~]#pscp.pssh -r -h test/iplist scripts/ /home/

[1] 23:27:57 [SUCCESS] root@192.168.0.128

[2] 23:27:57 [FAILURE] qiuhom@192.168.0.218 Exited with error code 1

[3] 23:27:57 [SUCCESS] root@192.168.0.217

[root@docker ~]#pssh -h test/iplist -i 'ls /home/'

[1] 23:28:30 [SUCCESS] root@192.168.0.128

abc

admin

scripts

tom

[2] 23:28:30 [SUCCESS] qiuhom@192.168.0.218

qiuhom

testuser1

[3] 23:28:31 [SUCCESS] root@192.168.0.217

roo

scripts

tom

[root@docker ~]#

  说明:可以看到我们把指定目录递归复制到目标主机上了,上面有一个主机失败了,原因是那个主机上是一个普通用户做的SSH key认证,我们用的是qiuhom这个普通用户的身份在远程主机上管理,因为qiuhom这个普通用户对/home/目录没有写权限,所以执行失败了。

示例:

  将本地的单个文件复制到远程主机上

1

2

3

4

5

6

7

8

9

10

[root@docker ~]#pssh -H qiuhom@192.168.0.218 -i 'ls -l /home/qiuhom/'

[1] 23:39:53 [SUCCESS] qiuhom@192.168.0.218

总用量 0

[root@docker ~]#pscp.pssh  -H qiuhom@192.168.0.218 /etc/fstab /home/qiuhom/

[1] 23:40:26 [SUCCESS] qiuhom@192.168.0.218

[root@docker ~]#pssh -H qiuhom@192.168.0.218 -i 'ls -l /home/qiuhom/' 

[1] 23:40:29 [SUCCESS] qiuhom@192.168.0.218

总用量 4

-rw-r--r--. 1 qiuhom qiuhom 552 11月  8 23:40 fstab

[root@docker ~]#

  将本地多个文件复制到远程主机上

1

2

3

4

5

6

7

8

9

10

11

12

13

14

[root@docker ~]#pssh -H qiuhom@192.168.0.218 -i 'ls -l /home/qiuhom/' 

[1] 23:40:29 [SUCCESS] qiuhom@192.168.0.218

总用量 4

-rw-r--r--. 1 qiuhom qiuhom 552 11月  8 23:40 fstab

[root@docker ~]#pscp.pssh -H qiuhom@192.168.0.218 /root/f1 /etc/inittab /var/log/messages /home/qiuhom/

[1] 23:42:01 [SUCCESS] qiuhom@192.168.0.218

[root@docker ~]#pssh -H qiuhom@192.168.0.218 -i 'ls -l /home/qiuhom/'                             

[1] 23:42:06 [SUCCESS] qiuhom@192.168.0.218

总用量 248

-rw-r--r--. 1 qiuhom qiuhom     18 11月  8 23:41 f1

-rw-r--r--. 1 qiuhom qiuhom    552 11月  8 23:40 fstab

-rw-r--r--. 1 qiuhom qiuhom    511 11月  8 23:41 inittab

-rw-------. 1 qiuhom qiuhom 239787 11月  8 23:41 messages

[root@docker ~]#

  将本地目录批量复制到远程主机上

1

2

3

4

5

6

7

8

9

10

[root@docker ~]#pssh -H 192.168.0.128 -i 'ls -l /home/'

[1] 23:51:31 [SUCCESS] 192.168.0.128

总用量 0

[root@docker ~]#pscp.pssh -H 192.168.0.128 -r /etc/sysconfig/network-scripts/ /home/

[1] 23:52:32 [SUCCESS] 192.168.0.128

[root@docker ~]#pssh -H 192.168.0.128 -i 'ls -l /home/'

[1] 23:52:53 [SUCCESS] 192.168.0.128

总用量 4

drwxr-xr-x 2 root root 4096 10月 25 03:36 network-scripts

[root@docker ~]#

  四、pslurp命令的使用

pslurp命令的功能是将远程主机的文件批量复制到本地

命令用法:

1

pslurp [-vAr] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par][-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] [-L localdir] remote local(本地名)

  说明:这个工具的用法和pscp.pssh的用法很类似,都是对文件的操作,pscp.pssh是往远程主机上推送,pslurp是从远程主机上拉去文件到本地。

  -L:指定从远程主机下载到本机的储存的目录,local是下载到本地后的名称

  -r:递归复制目录

示例:

  批量下载目标服务器的passwd文件至/root下,并命名为user

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

[root@docker ~]#ll

总用量 4

drwxr-xr-x 2 root root  24 8月  31 18:04 ansible

drwxr-xr-x 7 root root  95 7月  11 11:21 docker-training

drwxr-xr-x 2 root root  86 11月  8 23:02 dr1

-rw-r--r-- 1 root root  18 11月  8 23:20 f1

drwxr-xr-x 2 root root  42 10月 24 21:51 scripts

drwxr-xr-x 2 root root  47 7月  22 10:11 temp

drwxr-xr-x 2 root root 100 11月  8 23:20 test

[root@docker ~]#pslurp -h test/iplist  -L /root/ /etc/passwd user

[1] 00:03:00 [SUCCESS] qiuhom@192.168.0.218

[2] 00:03:00 [SUCCESS] root@192.168.0.217

[3] 00:03:04 [SUCCESS] root@192.168.0.128

[root@docker ~]#ls

192.168.0.128  192.168.0.217  192.168.0.218  ansible  docker-training  dr1  f1  scripts  temp  test

[root@docker ~]#ll 192.168.0.128/

总用量 4

-rw-r--r-- 1 root root 1262 11月  9 00:03 user

[root@docker ~]#cat 192.168.0.128/user

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

gopher:x:13:30:gopher:/var/gopher:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin

haldaemon:x:68:68:HAL daemon:/:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin

saslauth:x:499:76:Saslauthd user:/var/empty/saslauth:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

tcpdump:x:72:72::/:/sbin/nologin

abc:x:500:500::/home/abc:/bin/bash

admin:x:501:501::/home/admin:/bin/bash

mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash

apache:x:48:48:Apache:/var/www:/sbin/nologin

tom:x:502:502::/home/tom:/bin/bash

[root@docker ~]#

  说明:-L 是指定存放远程主机下载下来的文件存放地,每个主机的文件都会在其指定的本地目录下以远程主机ip为名的目录名下放着,文件名为我们指定的文件名。

  将远程主机192.168.0.128 上的/etc/profile.d/目录下载到本地主机

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

[root@docker test]#ll

总用量 4

-rw-r--r-- 1 root root 59 11月  8 22:04 iplist

[root@docker test]#pslurp -r -H 192.168.0.128 /etc/profile.d/ .

[1] 00:30:09 [SUCCESS] 192.168.0.128

[root@docker test]#tree

.

├── 192.168.0.128

│   └── profile.d

│       ├── colorls.csh

│       ├── colorls.sh

│       ├── cvs.csh

│       ├── cvs.sh

│       ├── glib2.csh

│       ├── glib2.sh

│       ├── lang.csh

│       ├── lang.sh

│       ├── less.csh

│       ├── less.sh

│       ├── modules.csh

│       ├── modules.sh

│       ├── vim.csh

│       ├── vim.sh

│       └── which2.sh

└── iplist

 

2 directories, 16 files

  说明:若未指定文件存放在本地的名字,默认就是存放在当前目录下以远程主机ip为名的目录下,文件名为我们下载远程主机上的文件名。

  五、pnuke命令的使用

  pnuke命令的功能是能在多个主机上并行杀死进程的程序

命令用法:

1

pnuke  [-vA]  [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t timeout] [-O options] [-x args] [-X arg] pattern

  说明:以上选项同pssh选项用法一致

示例:

  杀死远程主机httpd进程

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

[root@docker test]#pssh -h iplist -i 'ss -ntl |grep 80'

[1] 01:17:48 [SUCCESS] root@192.168.0.128

LISTEN     0      128                      :::80                      :::*    

[2] 01:17:48 [SUCCESS] root@192.168.0.218

LISTEN     0      128                      :::80                      :::*    

[3] 01:17:48 [SUCCESS] root@192.168.0.217

LISTEN     0      128         :::80                      :::*                 

[root@docker test]#pnuke -h iplist httpd

[1] 01:18:18 [SUCCESS] root@192.168.0.128

[2] 01:18:19 [SUCCESS] root@192.168.0.217

[3] 01:18:19 [SUCCESS] root@192.168.0.218

[root@docker test]#pssh -h iplist -i 'ss -ntl |grep 80'

[1] 01:18:23 [FAILURE] root@192.168.0.128 Exited with error code 1

[2] 01:18:23 [FAILURE] root@192.168.0.218 Exited with error code 1

[3] 01:18:23 [FAILURE] root@192.168.0.217 Exited with error code 1

[root@docker test]#

  说明:可以看到我们过滤httpd监听的80端口命令执行状态失败,说明远程主机上没有进程监听在80端口上。

  六、prsync 命令的使用

  prsync命令的功能是将文件并行复制到多个主机

命令用法:

1

prsync  [-vAraz] [-h hosts_file] [-H [user@]host[:port]] [-l user] [-p par] [-o outdir] [-e errdir] [-t time‐out] [-O options] [-x args] [-X arg] [-S args] local remote

  说明:以上选项同pssh命令选项类似。

示例:

复制文件到服务器

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

[root@docker test]#pssh -h iplist -i 'ls -l /root/'

[1] 01:35:19 [SUCCESS] root@192.168.0.128

总用量 4

-rw-r--r-- 1 root root 552 10月 25 05:19 fs

[2] 01:35:19 [SUCCESS] root@192.168.0.218

总用量 4

-rw-r--r--. 1 root root 552 11月  9 01:34 fs

[3] 01:35:19 [SUCCESS] root@192.168.0.217

总用量 4

-rw-r--r--. 1 root root 552 11月  9 01:35 fs

[root@docker test]#prsync -h iplist /etc/inittab /root/init/

[1] 01:35:52 [SUCCESS] root@192.168.0.128

[2] 01:35:52 [SUCCESS] root@192.168.0.218

[3] 01:35:52 [SUCCESS] root@192.168.0.217

[root@docker test]#pssh -h iplist -i 'ls -l /root/'

[1] 01:36:01 [SUCCESS] root@192.168.0.128

总用量 8

-rw-r--r-- 1 root root  552 10月 25 05:19 fs

drwxr-xr-x 2 root root 4096 10月 25 05:19 init

[2] 01:36:01 [SUCCESS] root@192.168.0.218

总用量 8

-rw-r--r--. 1 root root  552 11月  9 01:34 fs

drwxr-xr-x. 2 root root 4096 11月  9 01:35 init

[3] 01:36:01 [SUCCESS] root@192.168.0.217

总用量 4

-rw-r--r--. 1 root root 552 11月  9 01:35 fs

drwxr-xr-x. 2 root root  21 11月  9 01:35 init

[root@docker test]#

  说明:prsync的用法和pscp.pssh的用法类似,它两的区别在于,pscp.pssh不支持创建目录(在远端服务器上若没有指定目录,则创建),而prsync支持。pscp.pssh 支持将本地的不同多个文件同时复制到远程服务端,而prsync 不支持。

复制目录到服务器

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

[root@docker test]#pssh -h iplist -i 'rm -rf /root/*'

[1] 01:45:21 [SUCCESS] root@192.168.0.128

[2] 01:45:21 [SUCCESS] root@192.168.0.218

[3] 01:45:21 [SUCCESS] root@192.168.0.217

[root@docker test]#pssh -h iplist -i 'ls -l /root/'       

[1] 01:45:38 [SUCCESS] root@192.168.0.128

总用量 0

[2] 01:45:38 [SUCCESS] root@192.168.0.218

总用量 0

[3] 01:45:38 [SUCCESS] root@192.168.0.217

总用量 0

[root@docker test]#prsync  -r -h iplist /root/scripts/ /root/aaa/

[1] 01:46:20 [SUCCESS] root@192.168.0.128

[2] 01:46:21 [SUCCESS] root@192.168.0.218

[3] 01:46:21 [SUCCESS] root@192.168.0.217

[root@docker test]#pssh -h iplist -i 'ls -l /root/'

[1] 01:46:42 [SUCCESS] root@192.168.0.128

总用量 4

drwxr-xr-x 2 root root 4096 10月 25 05:30 aaa

[2] 01:46:42 [SUCCESS] root@192.168.0.218

总用量 4

drwxr-xr-x. 2 root root 4096 11月  9 01:46 aaa

[3] 01:46:42 [SUCCESS] root@192.168.0.217

总用量 0

drwxr-xr-x. 2 root root 42 11月  9 01:46 aaa

[root@docker test]#

  说明:传目录和pscp.pssh用法一样,需要加-r选项。

作者:Linux-1874

出处:https://www.cnblogs.com/qiuhom-1874/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.

分类: Linux自动化运维工具

 类似资料: