远程的服务器群不建议设置同样的密码,最好做ssh无密码验证
pssh
pssh [OPTIONS] command […]
–version:查看版本
-h:主机文件列表,内容格式”[user@]host[:port]”
-H:主机字符串,内容格式”[user@]host[:port]”
-l:登录使用的用户名
-p:并发的线程数【可选】
-o:标准输出信息文件保存的目录【可选】
-e:错误输出信息文件保存的目录【可选】
-t:TIMEOUT 超时时间设置,0无限制【可选】
-O:SSH的选项
-v:详细模式
-A:手动输入密码模式 //需要所有主机密码相同,不推荐使用,最好做无密码验证
-x:额外的命令行参数使用空白符号,引号,反斜线处理
-X:额外的命令行参数,单个参数模式,同-x
-i:将服务器执行命令的结果输出到当前终端
-P:打印出服务器返回信息
常用选项:-H 、-h 、-i
例:
pssh -H 'root@172.18.30.254 root@172.18.30.253' -i sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config # -H指定主机(可用单引号指定多台主机) -i表示在本地输出执行的结果 sed为要发送的命令
pssh -h ip.txt -i useradd "dc" #为ip.txt文件中的所有主机创建用户dc并显示执行结果,如果要调用远程的变量,那么需要把需要在远程主机执行的命令用单引号引起来,否则调用的是本地的变量
pssh -h ip.txt -i echo '$HOSTNAME' #如果要使用基于密码的方式去连接主机可以加-A选项,但是这个工具只会提示输入一次密码,也就是说,在批量执行的过程中,所有的主机密码都是相同的,在工作中,显然这样是不合要求的,所以这种方式一般是不使用的。
Pscp:将本地文件批量复制到远程主机
pscp.pssh -h ip.txt /root/ip.txt ~/ #将/root/ip.txt发送到ip.txt文件中的主机的家目录下
-v 显示复制过程
-a 复制过程中保留常规属性
-r 递归复制目录
pslurp:将远程主机的文件批量复制到本地
pslurp -h ip.txt -L /app/ /etc/passwd passwd #将所有ip.txt内的远程主机的/etc/passwd文件下载到本地的app路径下的对应ip下,文件名为passwd,最后的passwd为指定文件名(必须有该项,否则报错)
pslurp -h ip.txt -L /tmp -r /home/student dc #将所有ip.txt内的主机的/home/student目录复制到本地的tmp目录下,并更改目录名为dc
-L 指定从远程主机下载到本机的存储的目录
-r 递归复制目录
pnuke:远程杀死进程
选项与pssh基本一致
pnuke -H ip地址 进程名