方法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