2011-07-14 18:17:39 +02:00
|
|
|
#!/bin/sh
|
|
|
|
|
|
|
|
# Script backups incrementaux
|
|
|
|
# Evolix (c) 2007
|
|
|
|
|
|
|
|
CONFDIR=/etc/evobackup/
|
2014-05-28 16:04:42 +02:00
|
|
|
DATE=$(date +"%Y-%m-%d")
|
2011-07-14 18:17:39 +02:00
|
|
|
LOGFILE=/var/log/evobackup-sync.log
|
|
|
|
JAILDIR=/backup/jails/
|
|
|
|
INCDIR=/backup/incs/
|
|
|
|
MYMAIL=jdoe@example.com
|
|
|
|
|
2014-06-19 02:43:36 +02:00
|
|
|
TMPDIR=$(mktemp --tmpdir=/tmp -d evobackup.tmpdir.XXX)
|
|
|
|
EMPTYDIR=$(mktemp --tmpdir=/tmp -d evobackup.empty.XXX)
|
2011-07-14 18:17:39 +02:00
|
|
|
|
2014-06-19 02:43:36 +02:00
|
|
|
for i in $( ls -1 $CONFDIR ); do
|
2011-07-14 18:17:39 +02:00
|
|
|
|
|
|
|
# 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 )
|
2014-05-28 16:04:42 +02:00
|
|
|
date -d "$(date $MYDATE) $BEFORE" "+%Y-%m-%d"
|
2011-07-14 18:17:39 +02:00
|
|
|
done > "$TMPDIR"$i.keep
|
|
|
|
|
|
|
|
# delete obsolete inc backups
|
|
|
|
for j in $( grep -v -f "$TMPDIR"$i.keep "$TMPDIR"$i.files ); do
|
2014-05-28 16:04:42 +02:00
|
|
|
echo -n "Delete $i/$j begins at : " >> $LOGFILE
|
|
|
|
/bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE
|
2014-06-19 02:43:36 +02:00
|
|
|
cd $INCDIR$i
|
|
|
|
[ -n "$j" ] && rsync -a --delete $EMPTYDIR/ $j*
|
|
|
|
[ -n "$j" ] && rmdir $j* && touch /tmp/evobackup-rm.txt
|
2014-05-28 16:04:42 +02:00
|
|
|
echo -n "Delete $i/$j ends at : " >> $LOGFILE
|
|
|
|
/bin/date +"%d-%m-%Y ; %H:%M" >> $LOGFILE
|
2011-07-14 18:17:39 +02:00
|
|
|
done
|
2014-06-19 02:43:36 +02:00
|
|
|
done | tee -a $LOGFILE | ( [ -e "/tmp/evobackup-rm.txt" ] && mail -s "[info] EvoBackup - purge incs" $MYMAIL && rm /tmp/evobackup-rm.txt )
|
2011-07-14 18:17:39 +02:00
|
|
|
|
2014-06-19 02:43:36 +02:00
|
|
|
rm -rf $TMPDIR $EMPTYDIR
|