pdsh的全称是parallel distributed shell,与pssh类似,pdsh可并行执行对远程目标主机的操作,在有批量执行命令或分发任务的运维需求时,使用这个命令可达到事半功倍的效果。同时,pdsh还支持交互模式,当要执行的命令不确定时,可直接进入pdsh命令行,非常方便。
>pdsh -v
pdsh-2.29
rcmd modules: ssh,rsh,exec (default: rsh)
misc modules: machines,dshgroup
pdsh -w ssh:user00[1-10] "date"
此命令用于在user001到user0010上执行date命令。
pdsh -w ssh:user0[10-31],/1$/ "uptime"
此命令在选择远程主机时使用了正则表达式,表示在user010到user031中选择以1结尾的主机名,即在user011、user021、user031上执行uptime命令
-R 指定使用rcmd的模块名,默认是rsh。如果要选择ssh,可以通过如下方式指定:
pdsh -R ssh -w user00[1-10] "date"
-l 指定在远程主机上使用的用户名称。例如:
pdsh -R ssh -l opsuser -w user00[1-9] "date"
-x 此参数用来排除某些或某个主机,例如:
pdsh -R ssh -l opsuser -w user00[1-9] -x user005,user007 "date"
-t 指定连接远程主机的超时时间,以秒为单位,默认是10秒,可以通过此参数修改默认值,例如:
pdsh -R ssh -w slave000[1-9] -t 15 "date"
-N 此参数用来关闭远程主机所返回结果中的主机名显示
>pdsh -R ssh -w keop@th19[2-6] df -h | grep \/disk3