다기 능 SVN 백업 스 크 립 트 공유
15271 단어 통지 하 다.자원.백업 스 크 립 트shell
이 스 크 립 트 는 일부 인터넷 자원 을 참고 했다.
조금 만 수정 하면 실제 생산 환경 에 적용 할 수 있 습 니 다. 문제 가 있 으 면 연락 주세요 (* ^ ^ *)...
구체 적 인 스 크 립 트 내용 은 다음 과 같 습 니 다.
- #!/bin/sh
- #by 崔元荣
- #QQ:295749093
- #svn多功能备份脚本!
- svnbak_remote_dir=/data/192.168.1.7_svn/
-
- ###################################
- BACKUPDIR=/var/svnbackup
-
- ###################################
- SVNDIR=/var/svn
-
- ###################################
- ProjectLst=$BACKUPDIR/projectlist.txt
-
- ###################################
- LogFile=$BACKUPDIR/svnback.log
- History_LogFile=$BACKUPDIR/history_svnback.log
- DATE=`date +%Y%m%d-%T`
-
- # - This is the path to the directory you want to archive
- ###################################
- export PATH=$PATH:/bin:/usr/bin:/usr/local/bin
-
- # our actual rsyncing function
- do_accounting()
- {
- echo " " > $LogFile
- echo " " >> $LogFile
- echo " " >> $LogFile
- echo "###########################" >> $LogFile
- echo "$DATE" >> $LogFile
- echo "###########################" >> $LogFile
-
- echo " " >> $History_LogFile
- echo " " >> $History_LogFile
- echo "###########################" >> $History_LogFile
- echo "$DATE" >> $History_LogFile
- echo "###########################" >> $History_LogFile
-
- cd $BackDir
- }
-
- do_svndump()
- {
- PROJECTLIST=`cat $ProjectLst`
- cd $SVNDIR
- for project in $PROJECTLIST
- do
- echo "begin to dump $project databases" >> $LogFile
- echo "begin to dump $project databases" >> $History_LogFile
- if [ ! -f $BACKUPDIR/$project.dump ]
- then
- YOUNGEST=`svnlook youngest $project`
- svnadmin dump $project > $BACKUPDIR/$project.dump
- if [ $? != 0 ];then
- echo "full-backup faild" >> $LogFile
- echo "full-backup faild" >> $History_LogFile
- else
- echo "OK,dump file successfully!!" >> $LogFile
- echo "OK,dump file successfully!!" >> $History_LogFile
- fi
- echo "$YOUNGEST" > $BACKUPDIR/$project.youngest
- else
- echo "$project.dump existed,will do increatment job" >> $LogFile
- echo "$project.dump existed,will do increatment job" >> $History_LogFile
- if [ ! -f $BACKUPDIR/$project.youngest ]
- then
- echo "error, no youngest check!" >> $LogFile
- echo "error, no youngest check!" >> $History_LogFile
- else
- PREVYOUNGEST=`cat $BACKUPDIR/$project.youngest`
- NEWYOUNGEST=`svnlook youngest $project`
- if [ $PREVYOUNGEST -eq $NEWYOUNGEST ]
- then
- echo " no database updated!" >> $LogFile
- echo " no database updated!" >> $History_LogFile
- else
- LASTYOUNGEST=`expr $PREVYOUNGEST + 1`
- echo "last youngest is $LASTYOUNGEST" >> $LogFile
- echo "last youngest is $LASTYOUNGEST" >> $History_LogFile
- svnadmin dump $project --revision $LASTYOUNGEST:$NEWYOUNGEST --incremental > $BACKUPDIR/$project-$LASTYOUNGET-$NEWYOUNGEST.$DATE
- if [ $? != 0 ];then
- echo "zhengliang-backup faild" >> $LogFile
- echo "zhengliang-backup faild" >> $History_LogFile
- else
- echo "$NEWYOUNGEST" > $BACKUPDIR/$project.youngest
- echo "zhengliang-backup sucess!" >> $LogFile
- echo "zhengliang-backup sucess!" >> $History_LogFile
- fi
- fi
- fi
- fi
- done
- }
-
-
- do_rsync()
- {
- rsync -avz --partial --progress --delete $BACKUPDIR/* [email protected]:$svnbak_remote_dir
- if [ $? != 0 ]; then
- echo "svnbak 192.168.1.7 rsync to 192.168.1.6 faild!!!" >> $LogFile
- echo "svnbak 192.168.1.7 rsync to 192.168.1.6 faild!!!" >> $History_LogFile
- else
- echo "svnbak 192.168.1.7 rsync to 192.168.1.6 successfully!!" >> $LogFile
- echo "svnbak 192.168.1.7 rsync to 192.168.1.6 successfully!!" >> $History_LogFile
- fi
- }
-
- do_empty()
- {
- #echo "" > $LogFile
- for project in `cat $ProjectLst`
- do
- rm -f $BACKUPDIR/$project*
- done
- }
-
- do_mail()
- {
- cat $LogFile | mutt -s "SVN Backup status!" [email protected]
- }
- #################################################
-
- case "$1" in
- dump_full)
- do_empty && do_accounting && do_svndump && do_rsync && do_mail
- ;;
- dump_incremental)
- do_accounting && do_svndump && do_rsync && do_mail
- ;;
- *)
- echo $"Usage: $0 {dump_full|dump_incremental}"
- exit 2
- esac
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
어떻게 자원 의 열 복 구 를 진행 합 니까?모든 AssetManager 에 여러 개의 자원 패 키 지 를 추가 할 수 있 고 자원 을 찾 을 때 빠 르 기 위해 서 는 이 자원 패 키 지 를 먼저 분석 한 다음 에 색인 을 생 성하 여 나중에 자원 을 불 러...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.