博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下svn定时更新项目
阅读量:6961 次
发布时间:2019-06-27

本文共 1273 字,大约阅读时间需要 4 分钟。

方法一、用shell脚本定时更新项目
 
1、进入网站的根目录,假设项目位置放在/var/www/test
cd /var/www/test
 
2、建立脚本文件update.sh,分两步进行.首先利用touch命令创建,之后使用vim进行编辑.
touch update.sh
vim update.sh
 
输入以下内容
 
#!/bin/sh
while true
do
svn update --username 你的svn用户名 --password 你的svn密码
sleep 60
done
 
这里我设置的是sleep 60,即每隔60秒更新一次,数值大小可随个人需求而定.不建议间隔时间太短.
 
在后台执行这段脚本
nohup ./update.sh
 
会产生一个nohup.out记录更新信息。或用
nohup ./update.sh > update.out
 
这种定时更新方法还不够,因为如果服务器重启的话就没了,我们可以把它写到启动项里边
vim /etc/rc.local
 
添加
nohup /var/www/shop/update.out > /var/www/shop/update.out
 
方法二、用linux计划任务,这种方式很简单。
 
crontab -e
 
或者
vim /etc/crontab
 
或者
vim /var/spool/cron/root
 
在新的一行中添加
 
*/1 * * * * username /usr/bin/svn update /var/www/shop --username dxk --password 123465--no-auth-cache > /var/www/shop/update.log
 
这里每隔1分钟更新一次,并把记录写到update.log中
 
重启服务
service crond restart

这里主要是使用的定时方式来更新svn项目,用于本地局域网服务器还是可以接受的,但是用于万维网服务器就有点得不偿失了。
另一种办法就是利用post-commit钩子的方法,在每一次用户提交的时候,服务器上自动同步完成更新动作,减小了服务器压力。
 
方法三、post-commit钩子
 
svn 项目中的 hooks 文件中的 post-commit(该文件夹下有 tmp文件 去除后缀即可)
post-commit
#!/bin/sh
export LANG=zh_CN.GBK #svn 编码是GBK
export LANG=en_US.UTF-8 #svn 编码是UTF-8
svn up --username=
test
 --password=
test
 --no-auth-cache --non-interactive
 /var/www/test
 
(
橙色部分
根据自己的信息填写
)
 
设置过程中需要注意到的主要有两点:
 
1.svn的编码 
2.post-commit 权限 设置成 777

转载于:https://www.cnblogs.com/jenry/p/4170346.html

你可能感兴趣的文章
深入理解JVM(五)——垃圾回收器
查看>>
spring mvc 环境搭建
查看>>
装饰者模式
查看>>
单身税的时代就要来临,你还没有用Python帮你找一个女朋友吗?
查看>>
Kafka的底层实现原理
查看>>
CAS实现单点登录实例源码
查看>>
JEESZ-Zookeeper集群安装
查看>>
Dubbo背景和简介
查看>>
vue-router的HTML5 History 模式设置
查看>>
Neo 虚拟机
查看>>
Pycharm上Django的使用 Day10
查看>>
node上的redis调用优化示例
查看>>
Jenkinsfile
查看>>
CSS:父子元素浮动分析和清除浮动
查看>>
springboot配置Druid数据源
查看>>
IT兄弟连 JavaWeb教程 过滤器与监听器经典面试题
查看>>
[喵咪BELK实战(2)] elasticsearch+kibana搭建
查看>>
关于 SSHKey
查看>>
struts-ObjectFactory
查看>>
eclipse查看版本
查看>>