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
Pour la mise en place des backups incrémentaux sur le serveur :
- Mettre en place le script evobackup-inc.sh dans /usr/share/scripts
- Lui mettre les droits d'exécution : chmod u+x /usr/share/scripts/evobackup-inc.sh
- Mettre en place les scripts evobackup-inc.sh et evobackup-rm.sh dans /usr/share/scripts
- Mettre les droits d'exécution : chmod u+x /usr/share/scripts/evobackup-{inc,rm}.sh
- 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
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.)
Attention, la création de ce fichier est *obligatoire* pour activer
les copies incrémentales. Par exemple, dans le cas particulier où l'on
voudrait garder des copies advitam aeternam, il suffit de créer un
fichier /etc/evobackup/$JAIL vide.
les copies incrémentales. Si l'on veut garder des copies advitam aeternam
sans jamais les supprimer, on se contentera de créer un fichier
etc/evobackup/$JAIL vide.
Côté serveur à sauvegarder
~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -15,29 +15,13 @@ mkdir -p $TMPDIR
for i in $( ls $CONFDIR ); do
mkdir -p "$INCDIR"$i
# 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
echo -n "hard copy $i ends at : " >> $LOGFILE
/bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE
# 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 "Suppression du backup $j ($i)"
cd $INCDIR$i
rm -rf $j
done
done | tee -a $LOGFILE | mail -s "[info] EvoBackup - incrementaux" $MYMAIL
done | tee -a $LOGFILE | mail -s "[info] EvoBackup - create incs" $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