这个脚本写的匆忙,当时只是为了应付过这个匆忙起,因为实在没太多时间去好好处理这个全备脚本。所以写的很粗糙
环境要求:
系统:linux centos 5.6
代码管理服务:subversion
是否整合:是 与apache服务整合
#!/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
- THE END -
0 条评论。