使用说明:该脚本配合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