• 【Shell实战】批量在多台服务器上执行命令


    功能说明:批量在多台服务器上执行命令

     1 #!/bin/bash
     2 
     3 # ==========================================
     4 # 功能:批量在多台服务器上执行命令
     5 # 方法:./batch_cmd_manager.sh <cmd_to_exec>
     6 # 返回:各服务器执行命令返回的结果列表
     7 # 前提:在待执行命令的各个服务器上设置了免密登录
     8 # 警告:禁止执行删除、格式化等这样的可能造成严重后果的命令
     9 # 日期:2018-04-23
    10 #   By:HackHan
    11 # 其他:设置免密登录参考:https://blog.csdn.net/zoombinde/article/details/51902208
    12 # 文件:batch_cmd_manager.sh
    13 # ==========================================
    14 
    15 
    16 do_command()
    17 {
    18         hosts=`sed -n '/^[^#]/p' hostlist.txt`
    19         for host in $hosts
    20                 do
    21                         echo ""
    22                         echo HOST $host
    23                         ssh $host "$@"
    24                 done
    25         return 0
    26 }
    27 
    28 
    29 if [ $# != 1 ]
    30 then
    31         echo "=========================================="
    32         echo "功能:批量在多台服务器上执行命令"
    33         echo "方法:$0 "<cmd_to_exec>""
    34         echo "返回:各服务器执行命令返回的结果列表"
    35         echo "前提:在待执行命令的各个服务器上设置了免密登录"
    36         echo "警告:禁止执行删除、格式化等这样的可能造成严重后果的命令"
    37         echo "=========================================="
    38         exit 1
    39 fi
    40 
    41 
    42 echo "确定要执行命令?[yes/no]:$@ "
    43 read to_run
    44 
    45 local_ip=10.143.2.4
    46 
    47 if [ $to_run = "yes" -o $to_run = "YES" -o $to_run = "y" -o $to_run = "Y" ]
    48 then
    49         echo ""
    50         echo -e "33[31m执行命令 : $@ 33[0m"
    51         do_command "$@"
    52         echo ""
    53         echo HOST $local_ip
    54         $@
    55 else
    56         echo "取消执行命令!"
    57 fi
    58 
    59 echo ""
    60 echo "=========================================="

    保存IP地址列表的文件hostlist.txt:

    # IP地址列表,每行一个
    xx.xx.xx.xx
    xx.xx.xx.xxx
    xxx.xxx.xx.xx
  • 相关阅读:
    webpack4 css modules
    CSS多种方式实现底部对齐
    十大Web开发趋势
    CSS float相关介绍
    Web 堆栈选择指南:JAMStack vs MEAN vs LAMP
    a标签调用js函数写法总结
    如何给网页划分结构?
    九大高效的前端测试工具与框架
    移动端手机验证码四格、六格的input实现
    在modelarts上部署backend为TensorFlow的keras模型
  • 原文地址:https://www.cnblogs.com/leejack/p/8927166.html
Copyright © 2020-2023  润新知