Linux«Y²Î¤WSubVersion©w´Á³Æ¥÷§¹¾ã¸}¥»
¨ãÅé°t¸m½Ð®Ú¾Ú¦Û¤v»Ýn½Õ¾ã¡CÀô¹Ò¡GCentos5 [color=#f5fafe][/color]
svn¥Ø¿ý¬O¦b/svn¤W¡C
¥t¥~,°Oªº¦b§Aªº/¤U±«Ø¦p¤Uªº¥Ø¿ý
# mkdir -p /backup/svn/data/
# mkdir -p /backup/svn/daily/
¸}¥»¥\¯à¡G©w´Á¹ï¤@¨Ç¶µ¥Ø¶i¦æ§¹¾ã³Æ¥÷¡C
[table=95%][tr][td][color=#ff0000]¥H¤U¬°¤Þ¥Îªº¤º®e¡G[/color]
project.lst ¤å¥ó®æ¦¡¦p¤U¡G
project1
project2
³Æ¥÷¸}¥»¦p¤U¡G
#!/bin/sh
# [color=#f5fafe][/color]
# [color=#f5fafe][/color]
# subversion§¹¾ã³Æ¥÷ªº¸}¥»,½Õ¾ã¦n«á¨Ï¥Îcrontab -e ©ñ¨ì¦Û°Ê°õ¦æùر§Y¥i.
# [color=#f5fafe][/color]
#³Æ¥÷¤é§Ó¤å¥ó
LogFile=/backup/svn/svnbak.log
DATE=`date +%Y%m%d`
#³Æ¥÷¥Ø¿ý
BakDir=/backup/svn/data
#¤é±`³Æ¥÷¥Ø¿ý,¦pªG¦³
DailyDir=/backup/svn/daily [color=#f5fafe][/color]
#n³Æ¥÷ªº¶µ¥Ø¦Cªí¤å¥ó,¥u¦³¶µ¥Ø¦W [color=#f5fafe]Www.[/color]
ProjectLst=/backup/svn/project.lst
#©Ò¦³¶µ¥Ø³£«O¦s¦b³oӥؿý¤U
SvnDir=/svn [color=#f5fafe][/color]
#svnadminµ{§Çªº¸ô®|
SVNADMIN=/usr/bin/svnadmin
echo " " >> $LogFile
echo " " >> $LogFile
echo "-------------------------------------------" >> $LogFile
echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
echo "--------------------------" >> $LogFile [color=#f5fafe][/color]
cd $BakDir
#Ū¨ú¶µ¥Ø¦Cªí
PROJECTLIST=`cat $ProjectLst`
for project in $PROJECTLIST
do
projectdata=$SvnDir/$project
destdir=$BakDir/$project
dumpfile=$DATE.$project.tgz
[color=#f5fafe][/color]
if [ -f $BakDir/$dumpfile ] [color=#f5fafe]Www.[/color]
then
echo "backup file have exist!" >>$LogFile
else [color=#f5fafe][/color]
$SVNADMIN hotcopy $projectdata $destdir --clean-logs
tar czvf $dumpfile $destdir >/dev/null
rm -fr $project
echo "backup $project done into $dumpfile ">>$LogFile [color=#f5fafe][/color]
fi
## delete old tgz ¦¹³B®Ú¾Úcrontabªº®É¶¡½Õ¾ã,¨Ò¦p¤@©P¤@¦¸³Æ¥÷,¦¹³B«O¯d¤F5¥÷³Æ¥÷,¥H«eªº§R°£
oldfile="$BakDir/"$(date +%y%m%d --date='28 days ago').$project.tgz
[color=#f5fafe][/color]
if [ -f $oldfile ]
then
rm -f $oldfile >> $LogFile 2>&1
echo "[$oldfile]Delete Old File Success!" >> $LogFile [color=#f5fafe][/color]
else
echo "[$oldfile]No Old Backup File!" >> $LogFile
fi
done
#delete previous daily backup files
cd $DailyDir
rm -f *
[/td][/tr][/table]
¶:
[1]