Article Title: Linux SubVersion regularly backs up the complete script. Linux is a technology channel of the IT lab in China. Includes basic categories such as desktop applications, Linux system management, kernel research, embedded systems, and open source.
Adjust the configuration as needed.
Environment: Centos5
The svn directory is on/svn.
In addition, remember to create the following directory under your/
# Mkdir-p/backup/svn/data/
# Mkdir-p/backup/svn/daily/
Script Function: regularly backs up complete projects.
The format of the project. lst file is as follows:
Project1
Project2
The backup script is as follows:
#! /Bin/sh
#
#
# Subversion: complete backup script. After adjustment, use crontab-e to automatically execute the script.
#
# Backing up log files
LogFile =/backup/svn/svnbak. log
DATE = 'date + % Y % m % d'
# Backup Directory
BakDir =/backup/svn/data
# Daily backup directory, if any
DailyDir =/backup/svn/daily
# The project list file to be backed up, with only the project name
ProjectLst =/backup/svn/project. lst
# All projects are saved in this directory.
SvnDir =/svn
# Svnadmin program path
SVNADMIN =/usr/bin/svnadmin
Echo ""> $ LogFile
Echo ""> $ LogFile
Echo "--"> $ LogFile
Echo $ (date + "% y-% m-% d % H: % M: % S") >>$ LogFile
Echo "--"> $ LogFile
Cd $ BakDir
# Reading the project list
PROJECTLIST = 'cat $ projectlst'
For project in $ PROJECTLIST
Do
Projectdata = $ SvnDir/$ project
Destdir = $ BakDir/$ project
Dumpfile = $ DATE. $ project. tgz
If [-f $ BakDir/$ dumpfile]
Then
Echo "backup file have exist! ">>> $ LogFile
Else
$ SVNADMIN hotcopy $ projectdata $ destdir -- clean-logs
Tar czvf $ dumpfile $ destdir>/dev/null
Rm-fr $ project
Echo "backup $ project done into $ dumpfile"> $ LogFile
Fi
# Delete old tgz adjust the time according to crontab. For example, if a backup is performed once a week, five copies are retained here.
Oldfile = "$ BakDir/" $ (date + % y % m % d -- date = '28 days ago '). $ Project. tgz
If [-f $ oldfile]
Then
Rm-f $ oldfile >>$ LogFile 2> & 1
Echo "[$ oldfile] Delete Old File Success! ">>> $ LogFile
Else
Echo "[$ oldfile] No Old Backup File! ">>> $ LogFile
Fi
Done
# Delete previous daily backup files
Cd $ DailyDir
Rm-f *