• 自动化运维工具——pssh


    PSSH介绍

    pssh是一个python编写可以在多台服务器上执行命令的工具,同时支持拷贝文件,是同类工具中很出色的。它的用法可以媲美ansible的一些简单用法,执行起来速度比ansible快它支持文件并行复制,远程命令执行,杀掉远程主机上的进程等等。

    安装PSSH

    [root@CentOS]# yum install pssh #CentOS 直接yum安装
    #pssh 安装需要python环境,centos都自带Python2.7环境,所以不用再次安装python

     [root@CentOS7-5 ~]# rpm -ql pssh  #以下几个是pssh安装包带有的 自动化工具
     /usr/bin/pnuke # 在远程多台主机上并行killall 指定进程
      /usr/bin/prsync #使用rsync协议将本地文件同步到远程多台主机上
      /usr/bin/pscp.pssh # 将本地主机文件复制到多台远程主机上
      /usr/bin/pslurp #将远程主机上相同文件路径复制到本地主机上
      /usr/bin/pssh #远程多台主机并行执行命令

     1. PSSH使用

    在使用pssh的命令时,首先要保证本地主机与远程主机可以进行密钥认证,或者批量的远程主机账号密码相同。密钥认证请查看安全加密一章

    pssh命令
      --verison :查看版本
      -h :主机文件列表,指定一个文件,文件内容为 主机的, 用户、 IP、端口 ,内容格式为   [user@]host[:port]
      -H:直接指定单台主机,内容格式 [user@]host[:port]
      -l :登陆使用的用户名
      -p:并发的线程数
      -o:输出的文件目录
      -e:错误输入的文件
      -t:TIMEOUT 超时时间设置,0无限制
      -O:SSH的选项
      -v:详细模式
      -A:手动出入密码模式
      -x:额外的命令行参数使用空白符,引号,反斜线处理
      -X:额外的命令行参数,单个参数模式,同-x
      -i:每个服务器内部处理信息输出
      -P:打印服务器返回信息

    ·pssh实例

    通过pssh批量关闭seLinux
    pssh -H root@192.168.1.100 -i "sed -i "s@SELINUX=enforcing@SELINUX=disabled@" /etc/selinux/config"
    pssh -H
    root@192.168.1.100 -i setenforce 0

    通过pssh批量修改网卡名字
    pssh -H root@192.168.1.100 -i "sed -i 's@GRUB_CMDLINE_LINUX="rhgb quiet"@GRUB_CMDLINE_LINUX="rhgb quiet net.ifnames=0" /etc/default/grub'
    pssh -H root@192.168.1.100 -i "grub2-mkconfig -o /etc/grub2.cfg"
    pssh -H root@192.168.1.100 -i reboot

    将标准错误和标准正确重定向保存到指定目录文件
    pssh -H 192.168.1.100 -o /log -e /log/error.log -i hostname

    2. PSCP.PSSH使用

    pscp.pssh功能是将本地文件批量复制到远程主机

    pscp 命令
    -v:显示复制过程
    -a:复制过程中保留常规属性
    -r:递归复制目录
    -h:host files
    -H:  user@host:port   
    -l: user
    -p: 同上
    -o: outdir
    -e:error dir
    -t:timeout
    -r:递归复制目录下所有文件
    与pssh命令的option 功能基本一样

    ·pscp实例

    将本地test.sh 复制到/app/目录
    pscp.pssh -H 192.168.1.100 /root/test/test.sh /app/ 
    pscp.pssh -h host.txt /root/test/test.sh /app/ 
    
    将本地多个文件批量复制到/app/目录
    pscp.pssh -H 192.168.1.100 /root/f1.sh /root/f2.sh /app/
    
    将本地目录批量复制到/app/目录
    pscp.pssh -H 192.168.1.100 -r /root/test/ /app/

    3. pslurp.pssh使用

    pslurp.pssh功能是将远程主机的文件批量复制到本地

    pslurp 命令
    # 这些选项同pscp命令的功能一样pslurp  -vAr  -h  -H -l  -p -o -e -t -O -x -X 
    -L:指定从远程主机下载到本机的存储的目录, pslurp 172.16.1.100 -L /data/pssh sourceFile localFileName

    ·pslurp实例

    批量下载目标服务器的passwd文件至/data下,并更名为pass
    pslurp -H 192.168.1.10 -L /data/ /etc/passwd pass

    4. prsync使用

    将本地的/etc/sysconfig目录递归同步到目标服务器的 /tmp/目录下,并保持原来的时间戳,使用用户 root
    prsync -h host.txt -l root -a -r /etc/sysconfig /tmp/

    5. pnuke使用

    杀死目标服务器的syslog进程
    pnuke -h host.txt syslog
    只有今天
  • 相关阅读:
    FORTRAN学习记录
    Ubuntu查看和自动挂载硬盘
    正则表达式批量重命名
    [USACO 09FEB]Fair Shuttle
    [ZJOI 2012]灾难
    [BJOI 2010]次小生成树Tree
    Python开发 第一篇 python的前世今生
    关于pycharm字体大小的调整
    关于"人工智能Python""系统环境变量设置步骤
    [洛谷P1168]中位数
  • 原文地址:https://www.cnblogs.com/arnoLixi/p/10364855.html
Copyright © 2020-2023  润新知