使用說明:該腳本配合crontab運作,可以實作将SVN伺服器版本庫下的tags内容定時遷出,導出,rsync至生産環境中的代碼同步伺服器(在本例中,伺服器IP為192.168.50.7,中間需要建立公鑰信任),tags的檔案夾命名規則示例為: bbs-2011-03-22,其中bbs為項目名稱。/usr/local/scripts/project_name.txt檔案為svn項目名清單,一行為一個項目名,用于腳本循環。該腳本可重複運作。
#!/bin/sh
#function: checkout tag release and exprot,rsync to product environment
#author: lw.yang
#version: v-1.0
#modify_time: 2011-03-21
URL=http://svn.***.com
DATE=$(date +%F)
USERNAME=yangliangwei
PASSWORD=123456
IP=192.168.50.7
for i in $(cat /usr/local/scripts/project_name.txt);
do
cd /svn_co
/usr/bin/svn co $URL/$i/tags/$i-$DATE --username=$USERNAME --password=$PASSWORD >> /var/log/svnlog/$i-$DATE.log 2>&1
if [ -d "/svn_co/$i-$DATE" ];then
/usr/bin/svn export /svn_co/$i-$DATE /svn_rsync/$i-$DATE --force
/usr/bin/rsync -avH --delete --progress /svn_rsync/$i-$DATE root@$IP:/www >> /var/log/svnlog/$i-$DATE.log 2>&1
fi
if [ "$?" -eq "0" ];then
/bin/rm -rf /svn_co/$i-$DATE
/bin/rm -rf /svn_rsync/$i-$DATE
fi
done
本文轉自斬月部落格51CTO部落格,原文連結http://blog.51cto.com/ylw6006/522511如需轉載請自行聯系原作者
ylw6006