提示 : 脚本名称如果自己觉得不会记,可以自己改
1. xcall 当我们对集群中每个节点都执行相同的操作命令时,逐个对节点进行远程连接并执行指令的时间成 本过于高昂
可以在指定一个节点对集群中所有节点(包括自身)都能够免密登陆的前提下,通过编写xcall脚本 循环使用ssh为每个节点远程发送执行命令,以达到在所有主机上同时执行相同的Shell命令的效果
编写步骤:
使用root账户进入系统环境变量中存在的自定义本地脚本执行目录
cd /usr/local/bin
touch xcall
vim xcall
#xcall脚本代码
#!/bin/bash
pcount=$#
if((pcount==0));then
echo "no args";
exit;
fi#当前节点执行命令
$@
#集群中其他节点执命令
for((host=2; host<=4;host++)) ;
do
echo ----------- node$host -----------
ssh node$host $@
done
- 为xcall脚本设置所有账户都具备修改和执行权限(修改权限非必须,只是方便维护)
chmod 777 xcall
2. xsync脚本
cp 和 rsync 区别:
rsync支持符号链接(软链接),而scp不支持 用rsync做文件的复制要比scp的速度快,rsync只对差异文件做更新。scp是把所有文件都复 制过去
rsync
安装命令(每个节点都需要安装) : yum -y install rsync
语法: rsync [-ravl] 文件绝对路径 [用户名@节点:]文件需要存放的文件
选项 | 描述 |
-r | 递归文件夹 |
-a | 归档 |
-v | 显示复制过程 |
-l | 拷贝符号连接 |
xsync
当我们对集群中每个节点都修改相同文件内容时,逐个对节点进行远程连接并执行指令的时间 成本过于高昂
可以在指定一个节点对集群中所有节点(包括自身)都能够免密登陆的前提下,通过编写 xsync脚本
循环使用ssh为每个节点远程同步修改内容,以达到在所有主机上同步文件的效果 编写步骤 使用root账户进入系统环境变量中存在的自定义本地脚本执行目录
编写步骤
使用root账户进入系统环境变量中存在的自定义本地脚本执行目录
cd /usr/local/bin
touch xsync
xsync脚本代码
#!/bin/bash
#1 获取输入参数个数,如果没有参数,直接退出
pcount=$# if((pcount==0)); then
echo no args; exit;
fi
#2 获取文件名称
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 获取上级目录到绝对路径
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 获取当前用户名称
user=`whoami`
#5 循环
for((host=102; host=104; host++));
do
echo --------------- node$host ----------------
rsync -rvl $pdir/$fname $user@node$host:$pdir
done
为xcall脚本设置所有账户都具备修改和执行权限(修改权限非必须,只是方便维护)
chmod 777 xsync