zoukankan      html  css  js  c++  java
  • pssh 批量管理执行

    pssh 是一个python写的批量执行工具,非常适合30台服务器以内的一些重复性的操作
    安装很简单,只要python版本2.4 以上的都行
    用这个工作最好把机器做做好ssh信任关系,不然很麻烦 每次执行 都需要输入密码 
     
    [root@localhost ~]# wget https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
    --2014-05-22 20:56:16--  https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
    Resolving pypi.python.org... failed: Name or service not known.
    wget: unable to resolve host address “pypi.python.org”
    [root@localhost ~]# wget https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
    --2014-05-22 20:56:27--  https://pypi.python.org/packages/source/p/pssh/pssh-2.3.1.tar.gz
    Resolving pypi.python.org... 103.245.222.175
    Connecting to pypi.python.org|103.245.222.175|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 23427 (23K) [application/octet-stream]
    Saving to: “pssh-2.3.1.tar.gz”
    100%[========================================================================================================================================================================>] 23,427       124K/s   in 0.2s    
    2014-05-22 20:56:28 (124 KB/s) - “pssh-2.3.1.tar.gz” saved [23427/23427]
    [root@localhost ~]# tar zxf pssh-2.3.1.tar.gz 
    [root@localhost ~]# cd pssh-2.3.1
    [root@localhost pssh-2.3.1]# python setup.py install
    安装完毕后会有如下提示
    copying build/scripts-2.6/pslurp -> /usr/bin
    copying build/scripts-2.6/pssh -> /usr/bin
    copying build/scripts-2.6/pnuke -> /usr/bin
    copying build/scripts-2.6/pscp -> /usr/bin
    copying build/scripts-2.6/prsync -> /usr/bin
    copying build/scripts-2.6/pssh-askpass -> /usr/bin
    这几个就是他的命令,命令也相对来说很简单,不明白的可以看help,英文说明简单到我个文盲都能看懂
    pssh   多主机并行运行命令
    pscp   传输文件到多个hosts,他的特性和scp差不多
    pslurp   从多台远程机器拷贝文件
    pnuke    kill远程机器的进程
    pslurp   从远程主机考本文件到本地
    prsync   使用rsync协议从本地计算机同步到远程主机
     
    pssh:
    -h 执行命令的远程主机列表  或者 -H user@ip:port  文件内容格式[user@]host[:port]
    -l 远程机器的用户名
    -p 一次最大允许多少连接
    -o 输出内容重定向到一个文件
    -e 执行错误重定向到一个文件
    -t 设置命令执行的超时时间
    -A 提示输入密码并且把密码传递给ssh
    -O 设置ssh参数的具体配置,参照ssh_config配置文件
    -x 传递多个SSH 命令,多个命令用空格分开,用引号括起来
    -X 同-x 但是一次只能传递一个命令
    -i 显示标准输出和标准错误在每台host执行完毕后
    -I 读取每个输入命令,并传递给ssh进程 允许命令脚本传送到标准输入
    -P 打印输出
    [root@localhost ~]# pssh -H 192.168.1.100 -i ls  #单台机器 -H 参数
    [1] 03:12:05 [SUCCESS] 192.168.1.100
    anaconda-ks.cfg
    hellotest
    install.log
    install.log.syslog
    nginx
    ocaml-4.01.0.tar.gz
    password
    rsync-3.0.4
    rsync-3.0.4.tar.gz
    rsync_install.sh
    test.sh
    zabbix-2.0.8
    zabbix-2.0.8.tar.gz
    [root@localhost ~]# cat ip.txt  #多台机器的话可以把IP写进一个文件里面 用-h参数指定文件
    192.168.1.91
    192.168.1.92
    192.168.1.100
    192.168.1.101
    192.168.1.102
    192.168.1.130
    192.168.1.131
    192.168.1.132
    [root@localhost ~]# pssh -h ip.txt -i date  #-i表示执行完毕后显示标准输出和标准错误
    [1] 03:15:05 [SUCCESS] 192.168.1.92
    Sun Jul 27 03:43:53 EDT 2014
    [2] 03:15:05 [SUCCESS] 192.168.1.101
    Sun Aug  3 23:12:03 EDT 2014
    [3] 03:15:05 [SUCCESS] 192.168.1.100
    Sun Aug  3 23:12:03 EDT 2014
    [4] 03:15:05 [SUCCESS] 192.168.1.130
    Sun Aug  3 23:17:45 EDT 2014
    [5] 03:15:05 [SUCCESS] 192.168.1.131
    Sun Aug  3 23:17:45 EDT 2014
    [6] 03:15:05 [SUCCESS] 192.168.1.132
    Sun Aug  3 23:17:45 EDT 2014
    [7] 03:15:05 [SUCCESS] 192.168.1.91
    Thu May 22 21:42:49 EDT 2014
    [8] 03:15:10 [SUCCESS] 192.168.1.102
    Sun Aug  3 23:11:58 EDT 2014
    [root@localhost ~]# 
     
  • 相关阅读:
    ASP.NET MVC2 第四章Ⅱ
    关于Windows 7硬盘安装方法大全
    新手看Lambda
    ASP.NET MVC2 第五章Ⅲ
    守护线程
    双鱼
    信号量与互斥锁
    public,private,protected访问权限在Java,C++中的解析
    final in java
    Java code standard
  • 原文地址:https://www.cnblogs.com/pping/p/3891365.html
Copyright © 2011-2022 走看看