使用rsync批量部署🥑
使用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