##############################################################
第一種方式:
svn服務端 也是rsync的客戶端
web 是rsync的服務端
svn服務端執行:
[root@xinyou04 ~]#sh yum-svn02.sh
[root@xinyou04 ~]#mkdir /var/www/bbs -p
[root@xinyou04 ~]#svn checkout http://192.168.13.120/svn/mobile_game /var/www/bbs|tee -a svn.log
以下授權很重要:
###############################################################
chmod 777 -R /data/
chown -R apache.apache /data/
chmod -R 777 /var/www/bbs/
chown -R apache.apache /var/www/bbs/
chmod 777 -R /data/svn/mobile_game/hooks/post-commit
chown -R apache.apache /data/svn/mobile_game/hooks/post-commit
###############################################################
[root@xinyou04 ~]#cd /data/svn/mobile_game/hooks
[root@CactiEZ hooks]#cat post-commit
#!/bin/sh
#修改爲服務編碼
export LANG="zh_CN.UTF-8"
#Set variable
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/var/www/bbs
LOG=/data/auto_svn.log
#update the code from the SVN
$SVN update $WEB --username mobile_game --password 123456 --non-interactive
#......................
if [ $? == 0 ]
then
/bin/echo "$REPOS" "$REV" >> $LOG
/bin/echo `date` >> $LOG
/bin/echo "##############################" >> $LOG
rsync -avzp $WEB/* [email protected]::www --password-file=/etc/rsync.password
fi
###########################################################################################
第二種方式:
svn服務端:192.168.0.106採用ssh免密碼方式把公鑰匙發送給web
web 服務:192.168.0.103
#######此步很重要
[root@hh-c2c-php02 ~]# cp -rf .ssh/ /var/www/
######svn鉤子腳本02
[root@xinyou04 ~]#cd /data/svn/mobile_game/hooks
[root@CactiEZ hooks]#cat post-commit
#!/bin/sh
#修改爲服務編碼
export LANG="zh_CN.UTF-8"
#Set variable
REPOS="$1"
REV="$2"
SVN=/usr/bin/svn
WEB=/var/www/bbs
LOG=/data/auto_svn.log
IP=192.168.103
FILE=/var/www/html/bbs
#update the code from the SVN
$SVN update $WEB --username mobile_game --password 123456 --non-interactive
#......................
if [ $? == 0 ]
then
/bin/echo "$REPOS" "$REV" >> $LOG
/bin/echo `date` >> $LOG
/bin/echo "##############################" >> $LOG
rsync -azp $WEB/* root@$IP:$FILE
fi