#!/bin/bash
TIME=`date +%Y%m%d`
#svn库的主目录,因为我这里采用的是多库,其实差不多
VANCL=/opt/svnroot/
#svn备份存储的目录,请自己创建
SVN_DATA=/back/svndata/
#这里如果直接用server 来处理httpd服务的话,有的时候会失灵,所以用init.d下处理
/etc/init.d/httpd stop |grep -i OK
#看返回结果
I=$?
sleep 5
if [ "${I}" -eq "0" ];then
echo "httpd is stopping" > ${SVN_DATA}/log
else
/usr/bin/pgrep httpd|xargs kill -9
echo "httpd is kill for stopping" > ${SVN_DATA}/log
fi
#备份第一个库,标准错误输出到一个文件(这里我也不清楚为什么是标准错误输出时才是build reversion)
#由于库比较大,所以一定要用"&&"里处理每个命令
svnadmin dump ${VANCL}/Vancl > ${SVN_DATA}/Vancl_$TIME.dump 2> ${SVN_DATA}/svn.vancl.build.version && sleep 20 && svnadmin dump ${VANCL}/Vjia > ${SVN_DATA}/Vjia_$TIME.dump 2> ${SVN_DATA}/svn.Vjia.build.version && sleep 20 && sleep 30 && /etc/init.d/httpd start |grep -i OK && I=$? ;
echo "`ls -l ${SVN_DATA}/Vancl_$TIME.dump`" >> ${SVN_DATA}/log
echo "`ls -l ${SVN_DATA}/Vjia_$TIME.dump`" >> ${SVN_DATA}/log
sleep 10
if [ "${I}" -eq "0" ];then
echo "httpd is running" >> ${SVN_DATA}/log
else
echo "httpd is failed" >> ${SVN_DATA}/log
/etc/init.d/httpd restart |grep -i OK && I=$?
echo "$I" > ${SVN_DATA}/log
fi
echo "`cat ${SVN_DATA}/log`" |mutt -s "${TIME}" admin@kinggoo.com
最新评语