linux下svn定時更新項目

方法1、用shell腳本定時更新項目
 
一、進入網站的根目錄,假設項目位置放在/var/www/test
cd /var/www/test
 
二、創建腳本文件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
 
方法2、用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鉤子的方法,在每一次用戶提交的時候,服務器上自動同步完成更新動做,減少了服務器壓力。
 
方法3、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
相關文章
相關標籤/搜索