zoukankan      html  css  js  c++  java
  • pssh系列命令详解

    安装

    pssh提供OpenSSH和相关工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。该项目包括psshlib,可以在自定义应用程序中使用。pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。杀手锏是文件并行复制,,当进行再远程主机批量上传下载的时候,最好使用它。pssh用于批量ssh操作大批量机器;pssh是一个可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的;比起for循环的做法,更推荐使用pssh! (注意需要安装 python 2.4 或以上版本)

    下面是直接从源码进行编译安装的步骤,安装过程很快

    wget https://pypi.python.org/packages/60/9a/8035af3a7d3d1617ae2c7c174efa4f154e5bf9c24b36b623413b38be8e4a/pssh-2.3.1.tar.gz
    tar xf pssh-2.3.1.tar.gz -C /usr/local
    cd /usr/local/pssh-2.3.1/
    python setup.py install
    

    命令详解

    pssh --help可以查看命令参数选项:

    -l    远程机器的用户名
    -p    一次最大允许多少连接
    -o    输出内容重定向到一个文件
    -e    执行错误重定向到一个文件
    -t    设置命令执行的超时时间
    -A   提示输入密码并且把密码传递给ssh(注意这个参数添加后只是提示作用,随便输入或者不输入直接回车都可以,可以结合sshpass -p password使用)
    -O   设置ssh参数的具体配置,参照ssh_config配置文件
    -x   传递多个SSH 命令,多个命令用空格分开,用引号括起来
    -X   同-x 但是一次只能传递一个命令
    -i   显示标准输出和标准错误在每台host执行完毕后
    -I   读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入
    

    pssh、pscp、prsync、pnuke和pslurp的具体使用:

    #注:在使用工具前,确保主机间做了密钥认证,否则无法实现自动化,当然我们可以使用sshpass(yum install sshpass)配合pssh -A参数实现自动输入密码,但这要保证多台主机的密码相同,同时还要注意如果known_hosts没有信任远程主机,那么命令执行会失败,可以加上-O StrictHostKeyChecking=no参数解决,ssh能用的选项pssh也能用
    
    # 集群刚装好系统处于原始状态,可以使用下面命令来生成其他机器的ssh秘钥并将各机器的rsa公钥添加到本机
    sshpass -p password pssh -I -A -O StrictHostKeyChecking=no -h ip.txt -l brooksj -i "ssh-ketgen"  # 然后本机回车10次帮助各机器生成ssh秘钥,password为其它机器的统一密码
    sshpass -p password pssh -A -O StrictHostKeyChecking=no -h ip.txt -l brooksj -i "ssh-copy-id localhost-ip" # localhost-ip改成你本机的ip
     
    #pssh 远程批量执行命令 
    pssh -h ip.txt -P "uptime" 
    #-h  后面接主机ip文件,文件数据格式[user@]host[:port]
    #-P  显示输出内容
    #如果没办法密钥认证.可以采用下面方法,但不是很安全
    sshpass -p 123456 pssh -A -h ip.txt -i "uptime"
     
    #pscp 并行传输文件到远端
    #传文件,不支持远程新建目录
    pscp -h ip.txt test.py /tmp/dir1/
    #传目录
    pscp -r -h ip.txt test/ /tmp/dir1/
     
    #prsync 并行传输文件到远端
    #传文件,支持远程新建目录,即目录不存在则新建
    prsync -h ip.txt test.py /tmp/dir2/
    #传目录
    prsync -r -h ip.txt test/ /tmp/dir3/
     
    #pslurp从远程拉取文件到本地,在本地自动创建目录名为远程主机ip的目录,将拉取的文件放在对应主机IP目录下
    #格式:pslurp -h ip.txt -L <本地目录>  <远程目录/文件>  <本地重命名>
    #拉取文件
    pslurp -h ip.txt -L /root/ /root/1.jpg picture
    ll /root/172.16.1.13/picture
    -rw-r--r-- 1 root root 148931 Jan  9 15:41 /root/172.16.1.13/picture
    #拉取目录
    pslurp -r -h ip.txt -L /root/ /root/test temp
    ll -d /root/172.16.1.13/temp/
    drwxr-xr-x 2 root root 23 Jan  9 15:49 /root/172.16.1.13/temp/
     
    #pnuke:远程批量killall
    pnuke -h ip.txt nginx
    
  • 相关阅读:
    结巴分词 0.14 版发布,Python 中文分词库
    Lazarus 1.0.2 发布,Pascal 集成开发环境
    Android全屏 去除标题栏和状态栏
    服务器日志现 Android 4.2 传将添多项新特性
    Percona XtraBackup 2.0.3 发布
    长平狐 Android 强制设置横屏或竖屏 设置全屏
    NetBeans 7.3 Beta 发布,全新的 HTML5 支持
    CppDepend现在已经支持Linux
    GromJS 1.7.18 发布,服务器端的 JavaScript
    Apache OpenWebBeans 1.1.6 发布
  • 原文地址:https://www.cnblogs.com/brooksj/p/11695224.html
Copyright © 2011-2022 走看看