鹰击长空yuetao.org

9月 27

[原创]分享一个正式服务器上版本更新的脚本带日志记录功能 不指定

yuetao , 21:18 , server » subversion , 评论(0) , 引用(0) , 阅读(2622) , Via 本站原创 | |

svnUpdate.sh

 
线上服务器使用的版本更新的工具
 
主要功能有:
 
1. 更新之前会记录当前版本和更新之后的版本,万一更新错了,可以查日志还原。
2. 每次更新都会产生详细的日志存放到/home/svnlogs/下面,每天一个独立文件
 
 
用法:
 
svnUpdate.sh 要更新的路径 [使用哪个版本]
 
默认是更新到最新版本,如果指定了版本就更新哪个版本的
 
更新的路径是相对于网站的根路径开始算的
 
代码开始
----------------------------------------------------------------------------------------
 
if [ "$1" == "" ]; then
       echo "Error: You must input dir."
       exit 1
fi
if [ "$1" == "/" ]; then
       echo "Error: You can not input /."
       exit 1
fi
 
logfile=`date +"%Y%m%d"`
logpath="/home/svnlogs/${logfile}.log"
tfile=`echo $1 | awk -F'www/' '{print $2}'`
 
if [ ! -f "$logpath" ]; then
        touch $logpath
fi
 
 
 
#echo $1
logcontent1=`date -d "today" +"%Y%m%d %H:%M:%S svn update /home/wwwroot/www/${tfile};"`
version1=`svn status -v "/home/wwwroot/www/${tfile}" | awk '{print $1,$3}'`
logcontent2="before version:${version1};"
r_version=""
if [ "$2" != "" ]; then
        r_version="-r $2"
fi
sudo -u www svn $r_version update "/home/wwwroot/www/${tfile}"
version2=`svn status -v "/home/wwwroot/www/${tfile}" | awk '{print $1,$3}'`
logcontent3="after version: ${version2}"
 
-------------------------------------------------------------------------------------
代码结束
Tags:
发表评论

昵称

主页

邮箱

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]