rsync批量部署
在日常运维中,需要批量部署项目,可以使用rsync操作。
如果系统没有rsync命令,可以使用以下命令安装。
[root@localhost ~]# yum -y install rsync
1. 更新目录:
[root@localhost ~]# vim rsync.sh
#!/bin/bash
# 定义目标主机
iplist="/opt/iplist/ip.txt"
# 定义源目录
SOURCE_DIR="/opt/tomcat7-1/"
# 定义目标目录
DEST_DIR="/opt/tomcat7-1/"
for i in $(cat $iplist);do
echo "**********开始同步$i************";
rsync -a --delete --progress "$SOURCE_DIR" "$i:$DEST_DIR"
if [ $? -eq 0 ];then
echo "$i同步成功!"
else
echo "$i同步失败!"
fi
done
解释
–progress: 这个选项会在文件传输时显示每个文件的传输进度,包括已传输的字节数和传输速度。
-a: 归档模式,保留文件的属性。
–delete: 删除目标目录中在源目录中不存在的文件。
① 在本文中rsync命令用于将源目录 $SOURCE_DIR的内容同步到目标目录 $DEST_DIR,并删除目标目录中在源目录中不存在的文件。
② 在rsync命令中,你需要在 $SOURCE_DIR和 $DEST_DIR后面加上一个斜杠/,以表示同步的是目录中的内容,而不是目录本身。
2. 更新文件:
[root@localhost ~]# vim rsync.sh
#!/bin/bash
# 定义目标主机
iplist="/opt/iplist/ip.txt"
# 定义源目录或文件
SOURCE_DIR="/opt/tomcat8/conf/web.xml"
# 定义目标目录或文件
DEST_DIR="/opt/tomcat8/conf/web.xml"
for i in $(cat $iplist);do
echo -e "\033[35m*****************开始同步********************\033[0m"
#rsync -a --delete --progress "$SOURCE_DIR" "$i:$DEST_DIR"
rsync -a --progress "$SOURCE_DIR" "$i:$DEST_DIR"
if [ $? -eq 0 ];then
echo "$i同步成功!"
else
echo "$i同步失败!"
fi
done