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

    Linux系统映像规模当超过30时,小小的变更也会浪费很多时间,Linux系统下有很多可用的集中管理方案,例如著名的puppet,这个是用ruby开发,号称可以管理以万计的服务器。不过对于大多数SA来说,这个不怎么轻量,设置有点复杂。
    这里推荐PSSH,比DSH更强大的批量管理工具,先来看下它的命令列表。
    pssh  包安装  5  个实用程序:
    parallel-ssh  (pssh)  在多个主机上并行地运行命令。
    parallel-scp  (pscp)把文件并行地复制到多个主机上。
    parallel-rsync  (psync)通过  rsync  协议把文件高效地并行复制到多个主机上。
    parallel-slurp  (pslurp)把文件并行地从多个远程主机复制到中心主机上。
    parallel-nuke  (pnuke)并行地在多个远程主机上杀死进程。
    安装步骤(前提系统中已经安装有python2.4+):
    wget  http://parallel-ssh.googlecode.com/files/pssh-2.3.1.tar.gz
    tar  xvf  pssh-2.3.1.tar.gz
    cd  pssh-2.3.1
    python  setup.py  install
    执行完后可以看到执行文件,相关库文件,man文件已经安装。
    创建主机列表:
    vi  webapp.txt
    192.168.56.11
    192.168.56.12
    192.168.56.13
    192.168.56.14
    配置SSH信任关系
    mkdir  ~/.ssh
    ssh-keygen  -t  rsa
    scp  ~/.ssh/id_rsa.pub  192.168.56.11:/root/.ssh/authorized_keys
    scp  ~/.ssh/id_rsa.pub  192.168.56.12:/root/.ssh/authorized_keys
    scp  ~/.ssh/id_rsa.pub  192.168.56.13:/root/.ssh/authorized_keys
    scp  ~/.ssh/id_rsa.pub  192.168.56.14:/root/.ssh/authorized_keys
    或者通过脚本批量拷贝
    ip=192.168.56.
    for  i  in  $(seq  11  14)
    do
    ssh  $ip$i  -C  mkdir  /root/.ssh
    scp  ~/.ssh/id_rsa.pub  $ip$i:/root/.ssh/authorized_keys
    done
    或者通过读取文件的脚步拷贝
    for  i  in  `cat  webapp.txt`
    do
    ssh  $i  -C  mkdir  /root/.ssh
    scp  ~/.ssh/id_rsa.pub  $i:/root/.ssh/authorized_keys
    done
    执行命令示例
    #查看启动时间
    pssh  -h  webapp.txt  -l  root  -P  uptime  
    #复制文件到主机
    pscp  -h  webapp.txt  -l  root  forzw.repo  /etc/yum.repos.d/
    #关闭SELINUX
    pssh  -h  servers.txt  -l  root  -P 
    "sed  -i  '/SELINUX=enforcing/s/SELINUX=enforcing/SELINUX=disabled/'/etc/sysconfig/selinux"




    介绍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进程  允许命令脚本传送到标准输入(大写的i)

              5  介绍软件包内其他命令
                    pscp      传输文件到多个hosts,他的特性和scp差不多
                    pslurp      从多台远程机器拷贝文件
                    pnuke        kill远程机器的进程

    魅力男神
  • 相关阅读:
    天气查看
    省市区三级联动
    AJAX动态加载评论
    jquery插件实现分页
    obj-fit
    js使用正则表达式验证身份证格式
    弹性图片
    浏览器兼容问题
    Python3基础 __getattr__ 访问不存在的属性时,新增提示功能
    Python3基础 __delattr__ 在一个属性被删除时的行为
  • 原文地址:https://www.cnblogs.com/capable/p/6715206.html
Copyright © 2011-2022 走看看