php增量部署代码,用Rsync,实现网站的增量部署

整个网站通常会很大,尤其的其中静态的图片视频之类,但我们通常不会修改他们,平常只会修改几个文件,如果每次更新都将整个网站从本地上传到服务器,无疑很费时间,如果要找到修改的文件,并只上传这些文件,甚至只上传这些文件修改的部分,无疑会方便很多。

这就要用的到今天的主角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 进行压缩传输,提高效率

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值