用Rsync,实现网站的增量部署-创新互联
整个网站通常会很大,尤其的其中静态的图片视频之类,但我们通常不会修改他们,平常只会修改几个文件,如果每次更新都将整个网站从本地上传到服务器,无疑很费时间,如果要找到修改的文件,并只上传这些文件,甚至只上传这些文件修改的部分,无疑会方便很多。
创新互联公司是一家以重庆网站建设公司、网页设计、品牌设计、软件运维、成都网站推广、小程序App开发等移动开发为一体互联网公司。已累计为工商代办等众行业中小客户提供优质的互联网建站和软件开发服务。这就要用的到今天的主角Rsync,Rsync 可以执行增量备份,它只传输源文件和目标文件之间不一致的部分
环境:
web服务器root目录 /usr/share/nginx/game.shaochenfeng.com
本地项目目录 /git/game.shaochenfeng.com/public
首先建议配置好本地到web服务器的ssh免密码登陆[如何?](),不配置需要以后每次同步时输入密码
1.在web服务器端安装rsync
直接yum或apt安装就可以,在服务器端和本地都安装
yum install rsync # 红帽系
apt install rsync # Debian系
为什么要在服务器也安装rsync呢?因为虽然是通过ssh建立链接,但rsync使用的是自己的传输规则,而不是scp
2.向服务器推送
在本地执行,同步 本地项目目录 到 web服务器root目录
rsync -avz --delete <本地路径> www@192.168.56.10:<远程路径>
rsync -avz --delete /git/game.shaochenfeng.com/public www@192.168.56.10:/usr/share/nginx/game.shaochenfeng.com
其中参数
- -a 是递归传输并保持文件属性,在传输带有文件夹时使用,并保留文件的属性
- -v 显示传输过程
- -z 进行压缩传输,提高效率
- --delete 本地删除的文件,在服务器也会被删除
附上rsync常用选项
-a 包含-rtplgoD
-r 递归传输 同步有文件夹时使用
-v 显示传输过程
-l 保留软连接
-p 保持权限属性
-o 保持属主
-g 保持属组
-D 保持设备文件信息
-t 保持文件的时间属性,这个一定要有,不然下次同步不能判断那些文件发生了修改
--backup 对服务器已存在的文件做一个备份,备份的文件名后默认使用"~"做后缀
--delete 本地删除的文件,在服务器也会被删除
--exclude 过滤指定文件,如--exclude “logs”会把文件名包含logs的文件或者目录过滤掉,不同步
-P 显示同步过程,比如速率,比-v更加详细
-u 加上该选项后,如果DEST中的文件比SRC新,则不同步
--size-only 默认算法会检查修改时间和文件大小,加上这个只检查文件大小
-z 进行压缩传输,提高效率
欢迎访问我的官网,查看运维技术文章 www.shaochenfeng.com
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:用Rsync,实现网站的增量部署-创新互联
新闻来源:http://pwwzsj.com/article/dggcdp.html