rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。类似于scp
以下方法适用于在多个不同服务器(不在局域网内)部署相同项目
现在一个服务器上部署完整项目
然后新建一个auto_deploy.sh文件
# /bin/bash
# 1号服务器
SYS_PWD='123456'
sshpass -p $SYS_PWD rsync -avzP --exclude "/logs" -e 'ssh -p 22' /application/nginx/html/new_bi
root@122.112.162.153:/application/nginx/html
# 2号服务器
SYS_PWD2='7898798'
sshpass -p $SYS_PWD2 rsync -avzP -e 'ssh -p 8901' /application/nginx/html/new_bi/test root@111.111.111.111:/application/nginx/html/new_bi
记得给auto_deploy.sh添加可执行权限
chmod u+x auto_deploy.sh
. auto_deploy.sh 执行
-a,--archive 归档模式,表示以递归方式传输文件,并保持所有文件属性
-v,--verbose 详细模式输出,传输时的进度等信息
-z,--compress 传输时进行压缩以提高传输效率
-P,--progress 显示同步的过程及传输时的进度等信息
-e 'ssh -p 22' 表示以ssh的方式通过22端口推送,如果不写默认22端口
--exclude 忽略文件
sshpass 免密码登陆