zoukankan      html  css  js  c++  java
  • pssh批量执行命令

    pssh提供OpenSSH和相关工具的并行版本。包括pssh,pscp,prsync,pnuke和pslurp。该项目包括psshlib,可以在自定义应用程序中使用。pssh是python写的可以并发在多台机器上批量执行命令的工具,它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。

    安装pssh

    在CentOS系统环境下,介绍yum的安装和源码安装的方式:

    • yum方法
    yum install pssh
    
    • 编译安装
    wget http://parallelssh.googlecode.com/files/pssh-2.3.1.tar.gz
    tar xf pssh-2..1.tar.gz
    cd pssh-2.3.1/
    python setup.py install
    

    选项

    --version:查看版本
    --help:查看帮助,即此信息
    -h:主机文件列表,内容格式”[user@]host[:port]”
    -H:主机字符串,内容格式”[user@]host[:port]”
    -:登录使用的用户名
    -p:并发的线程数【可选】
    -o:输出的文件目录【可选】
    -e:错误输入文件【可选】
    -t:TIMEOUT 超时时间设置,0无限制【可选】
    -O:SSH的选项
    -v:详细模式
    -A:手动输入密码模式
    -x:额外的命令行参数使用空白符号,引号,反斜线处理
    -X:额外的命令行参数,单个参数模式,同-x
    -i:每个服务器内部处理信息输出
    -P:打印出服务器返回信息
    

    实例

    • 获取每台服务器的uptime:
    # pssh -h ip.txt -i uptime
    [1] 11:15:03 [SUCCESS] Mar.mars.he
    11:15:11 up 4 days, 16:25,  1 user,  load average: 0.00, 0.00, 0.00
    [2] 11:15:03 [SUCCESS] Jan.mars.he
    11:15:12 up 3 days, 23:26,  0 users,  load average: 0.00, 0.00, 0.00
    [3] 11:15:03 [SUCCESS] Feb.mars.he
    11:15:12 up 4 days, 16:26,  2 users,  load average: 0.08, 0.02, 0.01
    
    • 查看每台服务器上mysql复制IO/SQL线程运行状态信息:
    # pssh -h IP.txt -i "/usr/local/mysql/bin/mysql -e 'show slave status G'"|grep Running:
                Slave_IO_Running: yes
                Slave_SQL_Running: Yes
                Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
                Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    
    • 保存每台服务器运行的结果:
    # pssh -h IP.txt -i -o /tmp/pssh/ uptime
    [1] 11:19:47 [SUCCESS] Feb.mars.he
    11:19:55 up 4 days, 16:31,  2 users,  load average: 0.02, 0.03, 0.00
    [2] 11:19:47 [SUCCESS] Jan.mars.he
    11:19:56 up 3 days, 23:30,  0 users,  load average: 0.01, 0.00, 0.00
    [3] 11:19:47 [SUCCESS] Mar.mars.he
    11:19:56 up 4 days, 16:30,  1 user,  load average: 0.00, 0.00, 0.00
    
    • 我们来看一下/tmp/pssh/下的文件及其内容
    # ll /tmp/pssh/
    总用量 12
    -rw-r--r--. 1 root root 70 12月  1 11:19 Feb.mars.he
    -rw-r--r--. 1 root root 70 12月  1 11:19 Jan.mars.he
    -rw-r--r--. 1 root root 69 12月  1 11:19 Mar.mars.he
        
    # cat /tmp/pssh/*
    11:19:55 up 4 days, 16:31,  2 users,  load average: 0.02, 0.03, 0.00
    11:19:56 up 3 days, 23:30,  0 users,  load average: 0.01, 0.00, 0.00
    11:19:56 up 4 days, 16:30,  1 user,  load average: 0.00, 0.00, 0.00
    

    上面介绍的是pssh命令很少的一部分,大家可以将其用到适合自己的场景,发挥它的最大功效。

  • 相关阅读:
    gcc编译器如何生成指定的文件名
    文章如何做伪原创 SEO大神教你几招做"原创"网站文章的心得
    linux命令大全
    SDC文件模版
    lwip:网络数据包读取和解析过程
    离散时间信号与系统
    网络编程杂谈
    TCP segment of a reassembled PDU
    gdb: multiple process debug
    ntp.conf:很少有人提及的事
  • 原文地址:https://www.cnblogs.com/lianhaifeng/p/13512962.html
Copyright © 2011-2022 走看看