集群rsync 同步脚本
必须用绝对路径:
data_rsync.sh /baimei/softwares/elasticsearch-7.17.5/config/elasticsearch.yml
或者:
data_rsync.sh `pwd`/config/baimei-elastic-certificates.p12
需求, 可以用rsync 一键同步到所有的节点。
(1)所有节点安装rsync数据同步工具
yum -y install rsync
(2)编写同步脚本
cat > /usr/local/sbin/data_rsync.sh <<'EOF'
#!/bin/bash
# Auther: baimei
if [ $# -ne 1 ];then
echo "Usage: $0 /path/to/file(绝对路径)"
exit
fi
# 判断文件是否存在
if [ ! -e $1 ];then
echo "[ $1 ] dir or file not find!"
exit
fi
# 获取父路径
fullpath=`dirname $1`
# 获取子路径
basename=`basename $1`
# 进入到父路径
cd $fullpath
for ((host_id=112;host_id<=113;host_id++))
do
# 使得终端输出变为绿色
tput setaf 2
echo ===== rsyncing elk${host_id}: $basename =====
# 使得终端恢复原来的颜色
tput setaf 7
# 将数据同步到其他两个节点
rsync -apz $basename `whoami`@elk${host_id}:$fullpath
if [ $? -eq 0 ];then
echo "命令执行成功!"
fi
done
EOF
(3)给脚本授权
chmod +x /usr/local/sbin/data_rsync.sh
(4) 测试 (必须加入 绝对路径)
我们 同步一个文件,看看是否所有节点同步成功
data_rsync.sh log.tx
看看其他节点是否有 log.txt , 有说明成功了。