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

 #!/bin/bash

 # ==========================================
# 功能:批量在多台服务器上执行命令
# 方法:./batch_cmd_manager.sh <cmd_to_exec>
# 返回:各服务器执行命令返回的结果列表
# 前提:在待执行命令的各个服务器上设置了免密登录
# 警告:禁止执行删除、格式化等这样的可能造成严重后果的命令
# 日期:2018-04-23
# By:HackHan
# 其他:设置免密登录参考:https://blog.csdn.net/zoombinde/article/details/51902208
# 文件:batch_cmd_manager.sh
# ========================================== do_command()
{
hosts=`sed -n '/^[^#]/p' hostlist.txt`
for host in $hosts
do
echo ""
echo HOST $host
ssh $host "$@"
done
return 0
} if [ $# != 1 ]
then
echo "=========================================="
echo "功能:批量在多台服务器上执行命令"
echo "方法:$0 \"<cmd_to_exec>\""
echo "返回:各服务器执行命令返回的结果列表"
echo "前提:在待执行命令的各个服务器上设置了免密登录"
echo "警告:禁止执行删除、格式化等这样的可能造成严重后果的命令"
echo "=========================================="
exit 1
fi echo "确定要执行命令?[yes/no]:$@ "
read to_run local_ip=10.143.2.4 if [ $to_run = "yes" -o $to_run = "YES" -o $to_run = "y" -o $to_run = "Y" ]
then
echo ""
echo -e "\033[31m执行命令 : $@ \033[0m"
do_command "$@"
echo ""
echo HOST $local_ip
$@
else
echo "取消执行命令!"
fi echo ""
echo "=========================================="

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

# IP地址列表,每行一个
xx.xx.xx.xx
xx.xx.xx.xxx
xxx.xxx.xx.xx

【Shell实战】批量在多台服务器上执行命令的更多相关文章

  1. 批量实现多台服务器之间ssh无密码登录的相互信任关系

    最近IDC上架了一批hadoop大数据业务服务器,由于集群环境需要在这些服务器之间实现ssh无密码登录的相互信任关系.具体的实现思路:在其中的任一台服务器上通过"ssh-keygen -t ...

  2. 【 Linux 】单台服务器上并发TCP连接数

    单台服务器上并发TCP连接数    问题:一台服务器到底能够支持多少TCP并发连接呢? 1. 文件描述符限制:    对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的 ...

  3. 【 Linux 】单台服务器上并发TCP连接数(转)

    单台服务器上并发TCP连接数    问题:一台服务器到底能够支持多少TCP并发连接呢? 1. 文件描述符限制:    对于服务器来说,每一个TCP连接都要占用一个文件描述符,一旦文件描述符使用完,新的 ...

  4. shell远程操作另外一台机器上数据

    shell远程操作另外一台机器上的数据,有两种方式: 1 .配置免密登陆,2.使用sshpass 当前存在两台虚拟机,ip地址分别为:192.168.3.32 192.168.3.33 一.免密登陆操 ...

  5. Linux课程---16、apache虚拟主机设置(如何在一台服务器上配置三个域名)

    Linux课程---16.apache虚拟主机设置(如何在一台服务器上配置三个域名) 一.总结 一句话总结:有三个网站www.lampym.com,bbs.lampym.com,mysql.lampy ...

  6. 如何在一台服务器上安装两个mysql或者更多

    如何在一台服务器上安装两个mysql 1       前言 上篇写了在一台机器上源码编译安装一个mysql,那么如何在一台机器上源码编译安装两个mysql或者更多呢? 2       环境 mysql ...

  7. 在同一台服务器上配置多个Tomcat

    如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题.只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了! 下面我 ...

  8. 在多台服务器上简单实现Redis的数据主从复制(3)(转载)

    转载地址:http://www.cnblogs.com/liping13599168/archive/2011/04/14/2016226.html Redis的主从复制功能非常强大,一个master ...

  9. 如何在同一台服务器上安装多套通达OA

    本人最近研究了在同一服务器安装多套通达OA的方法:发现网上关于这个话题的文章比较少,于是录制成视频,在此发布,希望对有这方面需求的朋友有所帮助: http://blog.163.com/zhuwei_ ...

随机推荐

  1. [网络流]Farm Tour(费用流

    Farm Tour 题目描述 When FJ's friends visit him on the farm, he likes to show them around. His farm compr ...

  2. AJAX html 传输json字符串&&巧妙运用eval()来解析返回的JSON字符串

    1.AJAX html 传输json字符串: js方法如下: function saveRetYwlsh(){ var xmbh = document.getElementById("xmb ...

  3. sublime text 换行与不换行设置

    # 修改添加如下图右侧红框内容即可- 打开文件不换行

  4. Oracle异常:Caused by: java.sql.SQLException: ORA-01536: 超出表空间 '登录名' 的空间限额 (JPA保存数据)

    原因: Oracle表空间为0,没有分配空间内存. 解决办法在代码框里: 1. 查看用户表空间的限额 select * from user_ts_quotas; max_bytes字段就是了 -1是代 ...

  5. C#List源码

    List // C# 源码 public class List<T> : IList<T>, System.Collections.IList, IReadOnlyList&l ...

  6. web集成高德地图

    1.使用高德地图API需到官网添加一个Key,http://lbs.amap.com/dev/key/app 2.页面头引入 <div id="addressMap"> ...

  7. JavaScript:event loop详解

    之前已经有两篇随笔提到了event loop,一篇是事件机制,一篇是tasks和microtasks,但是里面的event loop都是文字描述,很难说细,逻辑也只是简单的提了一遍.其实之前也是通过阮 ...

  8. C++基础笔记(string截取)

    #include <iostream> #include <string> using namespace std; int main(int argc, char* argv ...

  9. golang注意问题

    关于slice 我们都知道slice是在通过参数传递的时候传递的是引用 slice的appen操作是有返回值的,并不改变原值 例如 b := [],,,} c:=append(b, ) // b 不变 ...

  10. hdu 4034

    比赛时才发现自己基础算法都忘得光光了,逆向floyd i->j经过k点,只要i到j的距离大于或者等于,就把这边标记,实为去掉...此时整个图就减一条边 #include<iostream& ...