1. 首先生成秘钥对(公钥和私钥)
ssh-keygen
2. 查看是否生成成功
ll /root/.ssh
3. 将A自己的公钥拷贝并追加到B的授权列表文件authorized_keys中
ssh-copy-id 192.168.1.100
4. 免密ssh登录
ssh 192.168.1.100
下载地址: https://pypi.org/project/pssh/#files
1. 安装依赖包
yum install -y make gcc gcc++ python-devel python-pip
2. 上传安装包,安装 pssh
tar zxvf pssh-2.3.1.tar.gz
cd pssh-2.3.1
python setup.py install
应用程序 | 使用说明 |
---|---|
pssh | 在多台主机上并行的运行命令 |
pscp | 把文件并行复制到多台主机上 |
prsync | 通过 rsync 协议把文件高效的同步到多台主机上 |
pslurp | 把文件并行的从多台远程主机上复制到本机上 |
pnuke | 并行的杀掉多台远程机器的进程 |
参数 | 说明 |
---|---|
-h | 执行命令的远程主机列表;或者 -H user@ip:port;文件内容格式[user@]host[:port] |
-l | 远程机器的用户名 |
-P | 执行时输出执行信息 |
-p | 一次最大允许多少连接 |
-o | 输出内容重定向到一个文件 |
-e | 执行错误重定向到一个文件 |
-t | 设置命令执行的超时时间 |
-A | 提示输入密码并且把密码传递给ssh |
-O | 设置ssh参数的具体配置,参照ssh_config配置文件 |
-x | 传递多个SSH 命令,多个命令用空格分开,用引号括起来 |
-X | 同-x 但是一次只能传递一个命令 |
-i | 显示标准输出和标准错误在每台host执行完毕后 |
1. pssh 多主机并行执行命令
# 获取每台机器上的时间,先在管理机上新建 ip.txt
pssh -p 2 -i -h /root/test/ip.txt "date"
2. pscp 把文件并行复制到多个机器上
# 将本地的 /root/kaishi.sh 文件复制到目标服务器的 /tmp/ 目录下
pscp -h /root/test/pssh.txt /root/kaishi.sh /tmp/
# 验证文件是否已经成功复制过去
pssh -p 2 -i -h /root/test/pssh.txt "ls /tmp/kaishi.sh"
3. prsync 使用 rsync 协议从本地计算机同步文件到远程主机
# 将本地的 /etc/sysconfig 目录递归同步到目标服务器的 /tmp/ 目录下
prsync -h /root/test/pssh.txt -l -a -r /etc/sysconfig /tmp/test/
# 验证文件是否已经成功同步过去
pssh -p 2 -i -h /root/test/pssh.txt "ls /tmp/test/"
4. pslurp 将文件从远程主机复制到本地主机
# 将目标服务器的 /tmp/*.log 格式的文件复制到本地的 /tmp 目录下,并更名为 test1.log 格式
pslurp -p 2 -h /root/test/pssh.txt -L /tmp -l root /tmp/*.log test1.log
# 在 /tmp/ 目录下即可看见以远端IP地址命名为目录,目录中存放复制过来的文件
ll /tmp/
5. pnuke 并行在远程主机杀进程,将远端服务器nginx进程杀死
# 查看远端nginx状态
pssh -p 2 -i -h /root/test/pssh.txt "lsof -i:80"
# 杀死远端nginx进程
pnuke -p 2 -h /root/test/pssh.txt nginx