La setmana passada vaig fer un petit shell script per fer backup dels repositoris de software del meu servidor. Bàsicament el que fa és mirar a /var/svn/repos quins directoris hi ha. Llavors llença un svnadmin dump i al mateix temps comprimeix amb bzip2 la sortida cap a un fitxer, després aquest fitxer es guarda a /home/backup/subversion que és una unitat de xarxa montada per fer backups en el servidor. L’últim detall que em fa falta comentar és que després de fer la còpia del fitxer, deixa 3 fitxers de cada repositori al directori de backup i la resta els borra. D’aquesta forma tinc 3 còpies de cada un dels repositoris, una d’ahir, l’altre d’abans d’ahir i finalment una de fa 3 dies. Així si passa algún desastre d’incosistència o algo semblant tinc més marge per recuperar el repositori.
Veureu que el codi és molt simple i si algú el vol adaptar no crec que li costi gaire, tot esta programat amb ordres típiques, sense comandes rares ni res. Finalment l’únic que he hagut de fer és posar-lo al cron a alguna hora de matinada.
#!/bin/sh BASE="/var/svn/repos" DATA=`date "+%Y%m%d"` cd $BASE REPOSS=`find . -maxdepth 1 -mindepth 1 -type d | cut -f 2 -d "/"` BACKUPDIR="/home/backup/subversion" for REPOS in $REPOSS do BACKUPFITXER=backup-repos-$REPOS FITXER=$BACKUPFITXER-$DATA.dump.bz2 echo -n "Starting $REPOS backup..." svnadmin dump -q $BASE/$REPOS | bzip2 > $FITXER 2>/dev/null mv $FITXER $BACKUPDIR cd $BACKUPDIR rm -f `ls -t $BACKUPFITXER* | sed -e 1,3d` 2> /dev/null echo "OK" cd $BASE done
2 thoughts on “Shell Script: backup dels repositoris de subversion”
Has probado alguna vez Bacula ? El dia que lo tengas rulando fliparas de como te olvidas de los backups , se encarga de todo , los cataloga y la restauracion es muy simple.
Yo desde siempre he sido partidario de montar scripts para las copias , pero desde que uso Bacula he dejado de programarlos.
[1]
Doncs si que el coneixo si, però jo necessitava una solució ràpida i que fes el que volia. De fet, no sé si bacula em faria just el que demano, o sigui, un dump. Que no és el mateix que copiar els fitxers.
Comments are closed.