linux下svn定时更新项目

方法一、用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 * * * *  /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

时间: 2024-12-21 09:25:21

linux下svn定时更新项目的相关文章

Linux 下 svn 多个项目多用户分配

安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下图: 输入 svn –help可以查看svn的使用方法 需求 开发服务器搭建好SVN服务器,不可能只管理一个工程项目,如何做到不在一个项目中的开发人员不能访问其它项目中的代码,做好技术保密工作. 代码仓库有三个仓库:project1,project2,project3 假设人员有6个人:eg1,eg2,eg3,eg4,eg5,eg6 eg1,eg2,只能访问projec

linux下SVN定时备份并删除历史备份

利用svnadmin hotcopy可以实现完全备份,但不能进行增量备份.svnadmin hotcopy是将整个库都"热"拷贝一份出来,包括库的钩子脚本.配置文件等:任何时候运行这个脚本都得到一个版本库的安全拷贝,不管是否有其他进程正在使用版本库. 优点是:备份过程较快,灾难恢复也很快:如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作. 缺点是:比较耗费硬盘,需要有较大的硬盘支持.在/data/svnbackup目录建立备份脚本svnbak.

Linux 下SVN自动更新

1.找到svn的所在目录: 我的目录在/usr/local/svn/myproject 2.新建post-commit vim hooks/post-commit #!/bin/shexport LANG=zh_CN.UTF-8SVN=/usr/bin/svnWEB=/home/wwwroot/myproject$SVN update $WEB --username xxx --password xxx 3.保存并退出 4.重启svn服务 svnserve -d -r /usr/local/sv

解决Linux下Svn检出Windows SVN服务器上项目SSL handshake failed: SSL error: Key usage violation in certificate has been detected.

在Linux上检出windows SVN服务器上项目时出现了SSL handshake failed: SSL error: Key usage violation in certificate has been detected.的错误. 最后通过从网上检索找到了一个答案: 可以同时解决掉在Ubuntu上和CentOS上检出失败的问题. 在Windows注册表中加入注册项: 32位机器: [HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVN Serv

linux 下 svn 服务器搭建与配置

Subversion是一个自由,开源的版本控制系统,可以记录每一次文件和目录的修改情况.这样就可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节. linux 下 svn的搭建 首先安装 subversion yum  install -y subversion 使用rpm -qa subversion 查看是否安装完成 安装完成后进行配置 首先在home 下建立svn的数据目录和密码认证目录 说明: svndata 目录用于存放项目目录,svnpassw 目录存放密码及认证文件 在svn

Linux下SVN服务器安装配置及客户端安装说明

原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_zf7k6J6EHSszq4ZU_Tyn0JimTKV8SzI9Ac4veaxCG3im Linux 下 SVN 服务器安装配置 第一章 安装 1. 采用源文件编译安装.源文件共两个,为: subversion-1.6.1.tar.gz ( subversion 源文件) subversion-de

[转载]linux下svn命令使用大全

原文地址:http://blog.chinaunix.net/uid-22150747-id-189264.html 最近经常使用svn进行代码管理,这些命令老是记不住,得经常上网查,终于找了一个linux下svn命令使用大全: 1.将文件checkout到本地目录 svn checkout path(path是服务器 上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2.往版本库中添加新的文件 svn add file例如:s

Linux下SVN账户密码保存设置

Linux下用SVN进行更新等操作时,总是提示输入用户名和密码,很不方便.因此搜了下解决办法,总结如下: 打开SVN配置文件: vim /home/<user>/.subversion/config 找到如下代码: ### Set store-passwords to 'no' to avoid storing passwords in the ### auth/ area of your config directory. It defaults to 'yes', ### but Subv

linux下svn常用指令

windows下的TortoiseSVN是资源管理器的一个插件,以覆盖图标表示文件状态,几乎所以命令都有图形界面支持,比较好用,这里就不多说.主要说说linux下svn的使用,因为linux下大部分的操作都是通过命令行来进行,所以必须得掌握linux下svn的常用指令.当然linux下也有模仿TortoiseSVN的linux X程序,例如RabbitVCS,模仿程度很高,但很容易拖慢X,因此不推荐. (如果是第一次提交文件,很可能会出现"svn:'.'不是工作副本",即当前目录不是工