linux下svn定時更新項目方法

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鉤子的方法,在每一次用戶提交的時候,服務器上自動同步完成更新動作,減小了服務器壓力。`

來源: <http://blog.sina.com.cn/s/blog_920dea7a01014nm8.html>

具體操作詳見:[Linux下svn自動更新web]

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


來源: <http://blog.sina.com.cn/s/blog_920dea7a01015cip.html>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章