利用SVN将开发服务器的代码部署到线上服务器
来源:互联网 发布:华尔街英语软件下载 编辑:程序博客网 时间:2024/06/03 19:36
环境:
开发机:SVN(代码库)+LNMP测试环境
web服务器:LNMP生产环境
#rpm -qa |grep rsync //检查是否安装rsync
密码文件
#vim /etc/rsyncd.secrets //密码文件
www:pwd //用户密码冒号隔开
配置文件
#vim /etc/rsyncd.conf
secrets file = /etc/rsyncd.secrets
[ylw]
uid = www
gid = www
path = /data/htdocs/ylw
comment = ylw
ignore errors
list = yes
auth users = www
read only = no
hosts allow = 192.168.1.2/24
hosts deny = *
开发机:
#rpm -qa |grep rsync //检查是否安装rsync
密码文件
#vim /etc/rsyncd.pwd //密码文件
pwd //只输入密码
SVN项目(ylwkj)钩子,如下
#!/bin/sh
#export LANG="zh_CN.UTF-8"
export LANG="en_US.UTF-8"
SVN=/usr/bin/svn
WEB=/data/htdocs/ylw/
$SVN update $WEB --no-auth-cache --non-interactive --username 123 --password 123
if (svnlook log /data/svn/reposdata/ylw/ | grep "ylw_deploy" > /dev/null 2>&1)
then
/usr/bin/rsync -arz /data/htdocs/ylw/ www@192.168.1.2::ylw --exclude-from=/etc/exclude.list --password-file=/etc/rsyncd.pwd >> /data/logs/rsync.log
if [[ $? -eq 0 ]];
then
echo "ylwkj deploy to 192.168.1.2 complete!!!"
echo "`date` auto deploy project ylw complete!!!" >> /data/logs/deploy.log
else
echo "ylwkj deploy to 192.168.1.2 complete fail"
echo "`date` auto deploy project ylw faild!!!" >> /data/logs/deploy.log
fi
else
echo "post-commit complete"
fi
PS:后面红色部分是自己加的,只要检测到提交注释里有ylw_deploy,就会启动rsync,来推送代码到web服务器,rsync第一次同步会慢一点,以后更新会很快.这里有个--exclude-from,里面写的是.svn,就是不推送.svn目录,这里sync用的是www用户,所以注意密码文件和exclude.list文件的读权限问题.
rsync推送参数常用
/usr/bin/rsync -arz /data/svn/repoback/ root@110.173.0.41::tongbu84 --password-file=/etc/rsyncd.pwd > /data/logs/scpsvn.log
-v, --verbose 详细模式输出
-q, --quiet 精简输出模式
-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-p, --perms 保持文件权限
-o, --owner 保持文件属主信息
-r, --recursive 对子目录以递归模式处理
-g, --group 保持文件属组信息
-t, --times 保持文件时间信息
-z, --compress 对备份的文件在传输时进行压缩处理
--delete 删除那些DST中SRC没有的文件
--delete-excluded 同样删除接收端那些被该选项指定排除的文件
--delete-after 传输结束以后再删除
- 利用SVN将开发服务器的代码部署到线上服务器
- Linux下代码从SVN服务器到web服务器的自动化部署[svn update $WEB --username mrwei --password jiaowomrwei]
- 利用node简单的搭建线上服务器
- 将nodejs代码部署到阿里云服务器
- [笔记]利用Webhook实现coding上的代码自动部署到Centos7服务器上
- 部署到linux线上服务器webSocket链接失败404
- 线上多台服务器部署
- 将您的应用程序部署到 Web 服务器
- 将web应用部署到Linux下面的tomcat服务器
- 简单利用git部署网站到服务器
- 将django部署到Apache服务器
- 将django部署到Apache服务器
- 将 Django 应用程序部署到生产服务器
- 将Servlet部署到Tomcat服务器
- 将项目从 GitHub 部署到服务器
- 将java项目部署到linux服务器
- 将Django应用部署到Apache服务器
- 利用SVN China服务器进行代码管理
- Transport Layer - 传输协议的控制
- Android launcher 桌面抽屉切换动画
- C/C++头文件大全
- samba的高级配置
- JS获取自定义范围随机数
- 利用SVN将开发服务器的代码部署到线上服务器
- awk基本用法
- zoj 3263 Immaterial and Missing Power (二分)
- 牛逼团队中的创造性受限
- android ble蓝牙开发略解
- 一步一步学zedboard之三生成FPGA配置文件
- 设计模式-策略模式
- 一个学习Hadoop的好地方(Hadoop、Hbase、Hive、Zookeeper)
- Android bluetooth介绍(一):基本概念及硬件接口