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

 #!/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. Django之URL(路由系统)用法

    路由系统 路由系统概念 简而言之,路由系统就是路径和视图函数的一个对应关系.django的路由系统作用就是使views里面处理数据的函数与请求的url建立映射关系.使请求到来之后,根据urls.py里 ...

  2. 《笨方法学Python》加分题1

    1. 让你的脚本再多打印一行 我将这个题目理解为在脚本中增加一个空行,因此,在脚本中增加一条 print “\n”命令即可python中\为转义符,‘\n’为换行, ‘\t’是tab,‘\\’才是普通 ...

  3. 深入理解JVM(一)编译openJDK

    此文总结的很不错:https://www.cnblogs.com/ACFLOOD/p/5528035.html 准备openJDK源码和环境 1.在linux和macOS上编译openJDK更加友好, ...

  4. Unable to instantiate Action, xxxAction, defined for 'xxxAction' in namespace '/'xxx

    最近写SSH2的项目时,遇到一些小问题,action得不到service实例,遂将struct2委托给spring进行管理,然后修改了bean的id和action的class,但是运行后发现找不到ac ...

  5. LOJ-10105(欧拉回路模板,套圈法,递归)

    题目链接:传送门 思路: (1)用邻接表存储有向图和无向图,有向图和无向图的每条边均站两个单元,无向图有正向边和反向边的区分. (2)有向图有欧拉回路:所有点的入度=出度: 无向图有欧拉回路:所有点的 ...

  6. bgfx入门练习2——找出DX,OpenGL驱动切换实现原理

    找到驱动切换的代码,自然而然就要找实现的位置了,简单搜了下,原来是GLSL Shader字节码转换到HLSL字节码,正好和Klayge做了相反的工作. 时间上似乎也差不多,Klyage是2014年搞的 ...

  7. Noxim配置运行

    Noxim - the NoC Simulator that is implemented by SystemC 第一步: C++ compiler installation 第二步: YAML in ...

  8. 部署eclipse项目到tomcat

    1.为了以防万一,将本地tomcat版本及其jdk版本与服务器上的版本最好是相同的 2.在本地eclipse下运行项目即可发布(注意(1)数据库连接的是服务器数据库还是本地数据库(2)运行项目前先cl ...

  9. 根据Excel模板存储数据,并下载

    @RequestMapping("/exportList") @ResponseBody public Map<String, Object> exportList(H ...

  10. MySQL基础--字符函数

    1.UPPER和UCASE返回字符串str,根据当前字符集映射(缺省是ISO-8859-1 Latin1)把所有的字符改变成大写.该函数对多字节是可靠的. 2.LOWER和LCASE返回字符串str, ...