Separation between creating inc copy and purge inc copies

This commit is contained in:
Gregory Colpart 2011-07-14 18:17:39 +02:00
parent 28f179c60a
commit 31e69c380c
3 changed files with 59 additions and 29 deletions

19
README
View file

@ -45,10 +45,15 @@ On créera ensuite les répertoires suivants :
- /etc/evobackup : config des fréquences des copies incrémentales - /etc/evobackup : config des fréquences des copies incrémentales
Pour la mise en place des backups incrémentaux sur le serveur : Pour la mise en place des backups incrémentaux sur le serveur :
- Mettre en place le script evobackup-inc.sh dans /usr/share/scripts - Mettre en place les scripts evobackup-inc.sh et evobackup-rm.sh dans /usr/share/scripts
- Lui mettre les droits d'exécution : chmod u+x /usr/share/scripts/evobackup-inc.sh - Mettre les droits d'exécution : chmod u+x /usr/share/scripts/evobackup-{inc,rm}.sh
- Activer le crontab suivant (ajuster éventuellement les heures) : - Activer le crontab suivant (ajuster éventuellement les heures) :
30 10 * * * /usr/share/scripts/evobackup-inc.sh 29 10 * * * pkill evobackup-rm.sh && echo "Kill evobackup-rm.sh done" | mail -s "[warn] EvoBackup - purge incs interrupted" root
30 10 * * * /usr/share/scripts/evobackup-inc.sh && /usr/share/scripts/evobackup-rm.sh
Note : si l'on ne veut *jamais* supprimer les backups incrémentaux, on pourra se contenter
de ne jamais lancer le script evobackup-rm.sh
Si le noyau du serveur est patché avec GRSEC, on évitera pas mal Si le noyau du serveur est patché avec GRSEC, on évitera pas mal
de warnings en positionnant les paramètres Sysctl suivants : de warnings en positionnant les paramètres Sysctl suivants :
@ -162,10 +167,10 @@ Côté serveur de sauvegardes
toutes les 15 jours, le 1er janvier de chaque année, etc.) toutes les 15 jours, le 1er janvier de chaque année, etc.)
Attention, la création de ce fichier est *obligatoire* pour activer Attention, la création de ce fichier est *obligatoire* pour activer
les copies incrémentales. Par exemple, dans le cas particulier où l'on les copies incrémentales. Si l'on veut garder des copies advitam aeternam
voudrait garder des copies advitam aeternam, il suffit de créer un sans jamais les supprimer, on se contentera de créer un fichier
fichier /etc/evobackup/$JAIL vide. etc/evobackup/$JAIL vide.
Côté serveur à sauvegarder Côté serveur à sauvegarder
~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -15,29 +15,13 @@ mkdir -p $TMPDIR
for i in $( ls $CONFDIR ); do for i in $( ls $CONFDIR ); do
mkdir -p "$INCDIR"$i
# hard copy everyday # hard copy everyday
echo -n "hard copy $i begins at : " >> $LOGFILE
/bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE
mkdir -p "$INCDIR"$i
cp -alx $JAILDIR$i $INCDIR$i/$DATE cp -alx $JAILDIR$i $INCDIR$i/$DATE
echo -n "hard copy $i ends at : " >> $LOGFILE
/bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE
# list actual inc backups done | tee -a $LOGFILE | mail -s "[info] EvoBackup - create incs" $MYMAIL
for j in $( ls $INCDIR$i ); do
echo $j
done > "$TMPDIR"$i.files
# list non-obsolete inc backups
for j in $( cat $CONFDIR$i ); do
MYDATE=$( echo $j | cut -d. -f1 )
BEFORE=$( echo $j | cut -d. -f2 )
date -d "$(date $MYDATE) $BEFORE" "+%d-%m-%Y"
done > "$TMPDIR"$i.keep
# delete obsolete inc backups
for j in $( grep -v -f "$TMPDIR"$i.keep "$TMPDIR"$i.files ); do
echo "Suppression du backup $j ($i)"
cd $INCDIR$i
rm -rf $j
done
done | tee -a $LOGFILE | mail -s "[info] EvoBackup - incrementaux" $MYMAIL

41
evobackup-rm.sh Normal file
View file

@ -0,0 +1,41 @@
#!/bin/sh
# Script backups incrementaux
# Evolix (c) 2007
CONFDIR=/etc/evobackup/
DATE=$(date +"%d-%m-%Y")
LOGFILE=/var/log/evobackup-sync.log
TMPDIR=/tmp/evobackup/
JAILDIR=/backup/jails/
INCDIR=/backup/incs/
MYMAIL=jdoe@example.com
mkdir -p $TMPDIR
for i in $( ls $CONFDIR ); do
# list actual inc backups
for j in $( ls $INCDIR$i ); do
echo $j
done > "$TMPDIR"$i.files
# list non-obsolete inc backups
for j in $( cat $CONFDIR$i ); do
MYDATE=$( echo $j | cut -d. -f1 )
BEFORE=$( echo $j | cut -d. -f2 )
date -d "$(date $MYDATE) $BEFORE" "+%d-%m-%Y"
done > "$TMPDIR"$i.keep
# delete obsolete inc backups
for j in $( grep -v -f "$TMPDIR"$i.keep "$TMPDIR"$i.files ); do
echo -n "Delete $i/$j begins at : " >> $LOGFILE
/bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE
cd $INCDIR$i
rm -rf $j
echo -n "Delete $i/$j ends at : " >> $LOGFILE
/bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE
done
done | tee -a $LOGFILE | mail -s "[info] EvoBackup - purge incs" $MYMAIL