EXWOLF°Q½×°Ï's Archiver

wolf µoªí©ó 2008-1-6 21:51

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]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.