forked from evolix/evobackup
Merge branch 'master' of ssh://billux@git.evolix.org/git/evolinux/evobackup
This commit is contained in:
commit
19b668006f
20
README
20
README
|
@ -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
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
41
evobackup-rm.sh
Normal 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
|
||||||
|
|
Loading…
Reference in a new issue