svn备份脚本

#!/bin/bash #svn complete bakup sprit Logfile=/svndata/svnfullbak/svnbak.log  #定义备份脚本日志文件变量 DATE=`date +%Y%m%d` #The dir of backup date Bakdir=/svndata/svnfullbak              #定义备份数据存放路径 Projectlist=/svndata/project.lst        #定义项目名列表变量(project.lst 是本身创建的文件,里面存放项目名,注意各项目名之间有空格隔开) Svndir=/svndata/svn                     #定义要备份数据所在位置变量 SVNADMIN=/usr/local/svn/bin/svnadmin    #定义拷贝文件所用命令   echo "" >>$Logfile   echo "" >>$Logfile   echo "-----------------------------------------------------------------------">>$Logfile   echo $(date +"%Y-%m-%d:%H:%M:%S")>>$Logfile   echo "-----------------------------------------------------------------------">> $Logfile cd $Backdir #Read the project's list PROJECTLIST=`cat $Projectlist`          #读取项目名列表 for project in $PROJECTLIST             #逐个检查在project.lst中的项目 do   projectdata=$Svndir/$project          #为各个项目创建变量   destdir=$Bakdir/$project              #备份数据存放的路径及名称   $SVNADMIN hotcopy $projectdata $destdir.$DATE    #拷贝数据 if [ $? -eq 0 ] then   echo "[ $project.$DATE ]Hotcopy back success" >>$Logfile #[ $project.$DATE ]此为执行变量之意   else   echo "[$project.$DATE]Hotcopy back fail" fi Oldtime=`date +%Y%m%d --date="10 days ago"` #这个变量定义了10天前备份的数据,用于设定保留距如今多少天的数据 Oldfile=$destdir.$Oldtime if [ -d $Oldfile ] then   rm -rf $Oldfile>>$Logfile   echo "[$Oldfile] Delete old file success!">>$Logfile else   echo "[$Oldfile] No old Backup file!">>$Logfile fi done #这是个全备脚本,没有也没有压缩,对于咱们公司的数据我作过一个对比,公司有80个项目,23个G压缩后21个G,比例不是很高,若是 压缩磁盘会多几步工做量,看下过程先备份数据,再各个项目压缩,删除备份项目,多了压缩和删除,压缩过程挺漫长,不介意使用,我 是天天全备,出现故障好恢复
相关文章
相关标签/搜索