• pssh,pdsh,mussh,cssh,dsh运维工具介绍


    pssh

    1 安装:
    #wget http://peak.telecommunity.com/dist/ez_setup.py
    python ez_setup.py
    #wget http://parallel-ssh.googlecode.com/files/pssh-2.2.2.tar.gz
    # tar zxvf pssh-2.2.2.tar.gz
    # cd pssh-2.2.2
    # python setup.py install
    2 pssh使用 (假设ssh已做好SSH信任,ssh信任请参看:关于ssh命令研究以及SSH信任详解)
    pssh工具包主要有5个程序:
    1 pssh 多主机并行运行命令
    [root@server pssh-2.2.2]# pssh -P -h test.txt uptime
    192.168.9.102: 14:04:58 up 26 days, 17:05, 0 users, load average: 0.07, 0.02, 0.00
    192.168.9.102: [1] 14:04:58 [SUCCESS] 192.168.9.102 9922
    192.168.8.171: 14:04:59 up 35 days, 2:01, 6 users, load average: 0.00, 0.00, 0.00
    192.168.8.171: [2] 14:04:59 [SUCCESS] 192.168.8.171 22
    192.168.9.104: 14:04:59 up 7 days, 20:59, 0 users, load average: 0.10, 0.04, 0.01
    192.168.9.104: [3] 14:04:59 [SUCCESS] 192.168.9.104 9922
    [root@server pssh-2.2.2]# cat test.txt
    192.168.9.102:9922
    192.168.9.104:9922
    192.168.8.171:22 //注意我的端口号不仅是默认的22
    假如想将输出重定向到一个文件 加-o file 选项
    2 pscp 把文件并行地复制到多个主机上
    注意 是从服务器端给客户端传送文件:
    [root@server pssh-2.2.2]# pscp -h test.txt /etc/sysconfig/network /tmp/network //标示将本地的/etc/sysconfig/network传到目标服务器的/tmp/network
    3 prsync 使用rsync协议从本地计算机同步到远程主机
    [root@server ~]# pssh -h test.txt -P mkdir /tmp/etc
    [root@server ~]# prsync -h test.txt -l dongwm -a -r /etc/sysconfig /tmp/etc //标示将本地的/etc/sysconfig目录递归同步到目标服务器的 /tmp/etc目录下,并保持原来的时间戳,使用用户 dongwm
    4 pslurp 将文件从远程主机复制到本地,和pscp方向相反:
    [root@server ~]# pslurp -h test.txt -L /tmp/test -l root /tmp/network test //标示将目标服务器的/tmp/network文件复制到本地的/tmp/test目录下,并更名为test
    [1] 14:53:54 [SUCCESS] 192.168.9.102 9922
    [2] 14:53:54 [SUCCESS] 192.168.9.104 9922
    [root@server ~]# ll /tmp/test/192.168.9.10
    192.168.9.102/ 192.168.9.104/
    [root@server ~]# ll /tmp/test/192.168.9.102/
    总计 4.0K
    -rw-r--r-- 1 root root 60 2011-04-22 14:53 test
    [root@server ~]# ll /tmp/test/192.168.9.104/
    总计 4.0K
    -rw-r--r-- 1 root root 60 2011-04-22 14:53 test
    5 pnuke 并行在远程主机杀进程:
    [root@server ~]# pnuke -h test.txt syslog //杀死目标服务器的syslog进程,只要ps进程中出现相关词语 都能杀死
    [1] 15:05:14 [SUCCESS] 192.168.9.102 9922
    [2] 15:05:14 [SUCCESS] 192.168.9.104 9922

    pdsh

    1、pdsh的安装过程
    pdsh的安装非常简单,有rpm包和源码包两种方式,大家可根据自己的喜好选择适合自己的安装方式。可以在http://code.google.com/p/pdsh/ 下载最新的源码包进行编译安装,目前最新版本为pdsh-2.29,这里下载的源码包为pdsh-2.29.tar.bz2。编译安装过程如下:

    [root@server ~]# tar jxvf pdsh-2.29.tar.bz2
    [root@server ~]# cd pdsh-2.29
    [root@server pdsh-2.29]#./configure --with-ssh --with-rsh --with-mrsh --with-mqshell
    > --with-qshell --with-dshgroups --with-machines=/etc/pdsh/machines
    [root@server pdsh-2.29]# make
    [root@server pdsh-2.29]# make install

    在执行configure阶段,“--with-ssh”参数表示启用ssh模块,其他参数都有类似的含义,而“--with-dshgroups”表示启用主机组支持,启用此参数后,就可以将一组主机列表写入一个文件并放到~/.dsh/group或/etc/dsh/group目录下,然后通过pdsh的“-g”参数进行调用。最后的参数“--with-machines”是“--with-dshgroups”参数的扩展,通过将所有要管理的主机列表都写入指定的/etc/pdsh/machines文件中,接着通过pdsh的“-a”参数调用,最终完成所有主机的便捷管理。

    完成安装后,可以通过“pdsh –V”查看pdsh的版本号以及可使用的模块信息,操作如下:

    [opsuser@server ~]$ pdsh -V
    pdsh-2.29
    rcmd modules: ssh,rsh,exec (default: rsh)
    misc modules: machines,dshgroup

    此外,也可以通过“pdsh -L”来显示当前所有加载的模块信息。在pdsh安装完成后,还有一个可用的工具pdcp,后面将详细讲述pdsh和pdcp两个命令的用法。

    2、pdsh的语法介绍
    安装pdsh完成后,通过执行“pdsh –h”和“pdcp –h”即可得到两个命令的完整用法,由于两个命令的参数大同小异,因此这里以pdsh命令为主介绍一些常用的参数及含义。下表是pdsh常用的参数及其含义。

    -w host,host 指定远程主机,可以指定多个,每个主机用逗号隔开,host可以是主机名也可以是IP地址。此参数非常灵活,常用的形式有:
    pdsh -w ssh:user001,ssh:user002,ssh:user003 "date"
    此命令用来查看user001、user002、user003主机上的时间,其中ssh表示在远程主机上执行命令的形式,默认是rsh。
    pdsh -w ssh:user00[1-10] "date"
    此命令用于在user001到user0010上执行date命令。
    pdsh -w ssh:user0[10-31],/1$/ "uptime"
    此命令在选择远程主机时使用了正则表达式,表示在user010到user031中选择以1结尾的主机名,即在user011、user021、user031上执行uptime命令


    -R 指定使用rcmd的模块名,默认是rsh。如果要选择ssh,可以通过如下方式指定:
    pdsh -R ssh -w user00[1-10] "date"

    -l 指定在远程主机上使用的用户名称。例如:
    pdsh -R ssh -l opsuser -w user00[1-9] "date"

    -x 此参数用来排除某些或某个主机,例如:
    pdsh -R ssh -l opsuser -w user00[1-9] -x user005,user007 "date"

     

    -t 指定连接远程主机的超时时间,以秒为单位,默认是10秒,可以通过此参数修改默认值,例如:pdsh -R ssh -w slave000[1-9] -t 15 "date"
    -u 设置远程命令执行的超时时间,以秒为单位,以ssh方式连接时,默认时间为无限
    -f 设置同时连接到远程主机的个数
    -N 此参数用来关闭远程主机所返回结果中的主机名显示
    -a 通过此参数可以指定所有的远程主机,设置此参数后,pdsh默认会查看/etc/machines文件中的主机列表,要改变此路径,在编译pdsh时通过“--with-machines”参数指定即可
    -g 此参数用来指定一组远程主机,在编译pdsh时可以通过“--with-dshgroups”参数来激活此选项,默认可以将一组主机列表写入一个文件中并放到本地主机的~/.dsh/group或/etc/dsh/group目录下,这样就可以通过“-g”参数调用了。例如:pdsh -R ssh -g userhosts "date",其中“userhosts”是一个主机列表文件,可以将此文件放在~/.dsh/group或/etc/dsh/group目录下

    -X 此参数用来排除指定组内的所有主机,经常与“-a”参数一起使用。例如:
    pdsh -R ssh -a -X userhosts "date"
    -q 此参数可以列出pdsh执行时的一些配置信息
    -V 此参数可以查看软件的版本信息以及可用的模块信息

    mussh

    1. 安装

    [root@devops-ruifengyun ~ ]$ apt-get install mussh

    cssh

    dsh

  • 相关阅读:
    scanf正则表达式
    找出 alter system kill session ‘sid,serial#’ kill 掉的数据库会话对应进程
    查询包含某个字段的表
    Oracle12C查询自建用户(非系统自带)
    监控慢SQL
    根据SPID查找SQL语句
    查看表空间使用率
    找出在使用临时表空间的SQL
    重设数据文件大小sql语句
    查看锁表进程SQL语句
  • 原文地址:https://www.cnblogs.com/Athrun/p/4537973.html
Copyright © 2020-2023  润新知