rsync + git发布项目
2019-02-27 11:51:28来源:博客园 阅读 ()
前言:
更新项目的时候需要将更改的文件一一上传,这样比较麻烦,用版本控制器git +rsync 搭建一个发布服务器,以后发布文件非常方便
首先说下,我这边的更新流程,本地写完之后,git push 到测试服,测试服测试完毕,运行脚本rsync.sh(此脚本先将代码 git pull到测试服,再rsync传到正式服,正常情况肯定不会pull 完直接提交到正式服,我只是模拟的情况,我这边的测试服当做临时服务器,正式服当做测试服)
搭建步骤:
安装需求:
服务器说明:
本地电脑:local
测试服:test
正式服:online
架构说明:
1、本地local写完代码之后,push
2、测试服test pull,进行测试
3、 次测试没问题,rsync到服务器online
优势:
1、用户rsync提交文件很快,比自己上传快
2、rsync会自行比对文件,一样的不会再次上传
3、rsync是可以添加忽略文件的
安装流程:
搭建git:
可以参考我博客的git搭建教程
安装rsync
需要安装rsync服务端和客户端,服务端和客户端安装流程一样,不过服务器多一个配置
1、安装rsync客户端:
①下载rsync安装包
可以到https://rsync.samba.org/ftp/rsync/ 去下载安装包,解压之后进行安装
# tar -zxvf rsync-3.1.2.tar.gz # cd rsync-3.1.2 # ./configure --prefix=/usr/local/rsync # make && make install
客户端到此就安装结束了,很简单
2、安装rsync服务端
和上面步骤一样,先安装,安装完之后,进行如下操作
# cd /usr/local/rsycn/ # mkdir etc # cd etc # vim rsyncd.conf
配置内容如下:(特别注意的是你们如果复制我的conf ,最好吧# 注释去掉,我之前加#出错了,我服务器配置没有#,#注释是写博客加的)
pid file = /var/run/rsync.pid lock file=/var/run/rsync.lock address = 0.0.0.0 #这个是rsync服务监听地址,我填的是所有,你们可以填写自己服务器的IP port = 873 uid = root gid = root use chroot = no read only = no max connections = 10 motd file = /usr/local/rsync/etc/rsyncd.motd log file = /var/log/rsync.log transfer logging = yes log format = %t %a %m %f %b syslog facility = local3 timeout = 300 [wechat]#这个是目录别名,下面是目录配置这个在使用rsync传输的时候用的到,就是你想传达哪个目录 path = /data/wwwroot/wechat_center/ [yiiadmin] # 和上面的wechat一样,这个可以配置多个 path = /data/wwwroot/wechatadmin/ list = yes list = yes ignore errors comment = demo secrets file = /usr/local/rsync/etc/rsync-demo.password # 密码文件
创建相关文件 1、# vim /usr/local/rsync/etc/rsyncd.motd 内容随便写,这个是客户端连接上来之后给的提示 2、secret 文件 # vim /usr/local/rsync/etc/rsync-demo.password 格式是 账号:密码 如 # root:123456 修改密码文件的权限 # chmod 600 /usr/local/rsync/etc/rsync-demo.password
上述配置完成之后,启动服务
# /usr/local/rsync/bin/rsync --daemon --config /usr/local/rsync/etc/rsyncd.conf
可以查看873端口情况
传输文件测试
将本地文件夹/home下的文件,传输到刚刚配置文件 wechat的下面
#rsync --password-file=/usr/local/rsync/etc/rsync-demo.password -zarv /home/ rsync@X.X.X.X::wechat
总结:
到此就搭建结束了,文末再附上我的rsync.sh 脚本(我传的是PHP文件,有个校验流程,你们不是PHP的可以删除那段代码)
#!/bin/bash dir_path="/home/wwwroot/wechatadmin/" remote_path="106.14.18.151/yiiadmin" cd "$dir_path" && git pull 2>&1 >/dev/null rsync_option=-avn already_execute=0 if [ $# -eq 1 ];then case "$1" in execute) already_execute=1 rsync_option=-av esac fi file_list=`rsync "$rsync_option" "$dir_path" rsync://"$remote_path" --exclude-from="/home/caol/exclude_yii.list" --delete` echo "传输的文件为:" echo "$file_list" echo "开始校验文件" for i in $file_list do if [[ $i =~ ".php" ]]&&[ -f $dir_path$i ];then phpl_res=`php -l $dir_path$i` is_normal=`echo "$phpl_res" | grep "No syntax errors"` if [ ! -n "$is_normal" ];then echo "$dir_path$i语法错误,请调整代码" exit 0 fi fi done echo "开始传输" rsync --password-file=/usr/local/rsync/etc/rsync-demo.password -zarv $dir_path rsync://"$remote_path" --exclude-from="/home/caol/exclude_yii.list" --delete
原文链接:https://www.cnblogs.com/IT--Loding/p/10439310.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:Linux 学习第六天
- 三步教你如何在Github部署自己的简历 2020-04-27
- 永久免费!国产操作系统 Deepin V20 Beta版发布(附安装教程 2020-04-19
- 如何在 Vim 里直接完成 Git 操作? 2020-04-15
- Linux下git操作GitHub步骤 2020-03-26
- git工具-系列目录 2020-03-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash