zoukankan      html  css  js  c++  java
  • 【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
  • 相关阅读:
    apue学习笔记(第十五章 进程间通信)
    apue学习笔记(第十四章 高级I/O)
    apue学习笔记(第十三章 守护进程)
    各种仪器销售说明网站
    专业英语分类和查询
    c#网格控件,Excel控件
    sqlite支持linq
    使WebDev.WebServer.exe 当web服务器
    zip压缩文件测试
    c++爬虫子
  • 原文地址:https://www.cnblogs.com/leejack/p/8927166.html
Copyright © 2011-2022 走看看