Linux shell脚本实现对多台机器之间指令的执行以及文件的同步传输
- 需要给两个脚本添加可执行权限:chmod a+x *all.sh
- 脚本存放位置:/usr/local/bin
一、多台机器指令的执行
#! /bin/bash
#################################################################
# 2019/3/21
# @author:wanglei
# @desc:Execute instructions for all machines in the cluster
#################################################################
scriptContent="$1"
for ((i=1;i<5;i++))
do
hname="s$i"
echo "====== $hname $scriptContent ======"
ssh $hname $scriptContent
done
使用方式:如查看所有主机的进程情况 -》 xall.sh "ps"
脚本中的5为机器数量减1,需要根据/etc/hosts配置的地址进行修改,hname同理
二、多台机器间文件的同步传输
#! /bin/bash
#############################################################
# 2019/3/21
# @author:wanglei
# @desc:Execute file transfer instructions for all machines in the cluster
#############################################################
fileName="$1"
currPath=`pwd`
for((i=2;i<5;i++))
do
hostname="s$i"
echo "=== $hostname $currPath/$fileName ==="
scp $fileName centos@$hostname:$currPath/
done
使用方式:如复制当前目录下的a.txt到其他所有机器同级目录下 -》 sall.sh "a.txt"
脚本中的5为机器数量减1,需要根据/etc/hosts配置的地址进行修改,hname同理,centos为你操作的用户名