Merge branch 'master' of ssh://billux@git.evolix.org/git/evolinux/evobackup

This commit is contained in:
Romain Dessort 2011-08-17 11:04:39 +02:00
commit 19b668006f
4 changed files with 61 additions and 31 deletions

20
README
View file

@ -33,6 +33,7 @@ Avec les logiciels suivants :
- OpenSSH - OpenSSH
- Rsync (le daemon rsync n'est pas nécessaire) - Rsync (le daemon rsync n'est pas nécessaire)
- Le paquet makedev
- Commande "mail" (ou un équivalent) capable d'envoyer - Commande "mail" (ou un équivalent) capable d'envoyer
des messages à l'extérieur. des messages à l'extérieur.
@ -45,10 +46,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 +168,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

@ -123,8 +123,7 @@ echo "......OK"
echo -n "4 - Creation des devices..." echo -n "4 - Creation des devices..."
cd $chrootdir/dev/ cd $chrootdir/dev/
cp /dev/MAKEDEV ./ MAKEDEV {null,random,urandom,pty}
./MAKEDEV {null,random,urandom,pty}
mkdir pts mkdir pts
#mknod ptmx c 5 2 #mknod ptmx c 5 2

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