From 10a676fe6cbb38bb6e8661ba85edb6eecb4cc558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20S=C3=89RIE?= Date: Thu, 30 Jan 2014 16:39:34 +0100 Subject: [PATCH] Ameliorate report when creating or deleting incrementals. --- crons/evobackup-inc.sh | 22 ++++++++++++++++------ crons/evobackup-rm.sh | 21 +++++++++++++-------- 2 files changed, 29 insertions(+), 14 deletions(-) diff --git a/crons/evobackup-inc.sh b/crons/evobackup-inc.sh index 58ca851..d12fc22 100644 --- a/crons/evobackup-inc.sh +++ b/crons/evobackup-inc.sh @@ -3,15 +3,25 @@ . /etc/evobackup/conf.d/incrementals.cf -start=$(date --rfc-3339=seconds) +tmplog=$(mktemp --tmpdir=/tmp evobackup.tmplog.XXX) +# Don't return *, if bash glob don't find files/dir. +shopt -s nullglob +# Search for incrementals to do. for client in ${CONFDIR}/*; do + start=$(date --rfc-3339=seconds) backupname=${client#/etc/evobackup/conf.d/incs/} - # hard copy everyday - echo -n "Hard copy of backup $backupname started at $start. " \ - >> $LOGFILE + echo "Incrementals of $backupname started at $start. " \ + >> $tmplog [[ ! -d ${INCDIR}/${backupname} ]] && mkdir -p ${INCDIR}/${backupname} + # Do the incrementals. cp -alx ${JAILDIR}/${backupname} ${INCDIR}/${backupname}/${DATEDIR} stop=$(date --rfc-3339=seconds) - echo -n "Hard copy of $backupname ended at $stop." >> $LOGFILE -done | tee -a $LOGFILE | mailx -s "[info] EvoBackup report of creating incrementals" $MAIL_TO \ No newline at end of file + echo "Incrementals of $backupname ended at $stop." >> $tmplog +done +# Save tmplog to global log. +cat $tmplog >> $LOGFILE +# Send mail report. +< $tmplog mailx -s "[info] EvoBackup report of creating incrementals" $MAIL_TO +# Cleaning. +rm $tmplog \ No newline at end of file diff --git a/crons/evobackup-rm.sh b/crons/evobackup-rm.sh index 76c46cb..b38f963 100644 --- a/crons/evobackup-rm.sh +++ b/crons/evobackup-rm.sh @@ -4,11 +4,12 @@ . /etc/evobackup/conf.d/incrementals.cf -tmpdir=$(mktemp --tmpdir=/tmp -d evobackup.XXX) -emptydir=$(mktemp --tmpdir=/tmp -d evobackup.XXX) - +tmpdir=$(mktemp --tmpdir=/tmp -d evobackup.tmpdir.XXX) +emptydir=$(mktemp --tmpdir=/tmp -d evobackup.empty.XXX) +tmplog=$(mktemp --tmpdir=/tmp evobackup.tmplog.XXX) # Don't return *, if bash glob don't find files/dir. shopt -s nullglob + # For each client, delete needed incrementals. for client in ${CONFDIR}/*; do # Get only the name of the backup. @@ -26,15 +27,19 @@ for client in ${CONFDIR}/*; do # Delete obsolete incrementals backup for inc in $(grep -v -f ${tmpdir}/${backupname}.keep ${tmpdir}/${backupname}.files); do start=$(date --rfc-3339=seconds) - echo -n "Delete of ${backupname}/${inc#${INCDIR}/${backupname}/} started at ${start}." >> $LOGFILE + echo "Deletion of ${backupname}/${inc#${INCDIR}/${backupname}/} started at ${start}." >> $tmplog # We use rsync to delete since it is faster than rm! rsync -a --delete ${emptydir}/ $inc rm -r $inc rm -r $emptydir stop=$(date --rfc-3339=seconds) - echo -n "Delete of ${backupname}/${inc#${INCDIR}/${backupname}/} ended at ${stop}." >> $LOGFILE + echo "Deletion of ${backupname}/${inc#${INCDIR}/${backupname}/} ended at ${stop}." >> $tmplog done -done | tee -a $LOGFILE | mail -s "[info] EvoBackup - purge incs" $MAIL_TO - +done +# Save tmplog to global log. +cat $tmplog >> $LOGFILE +# Send mail report. +< $tmplog mailx -s mail -s "[info] EvoBackup - deletion of obsolete incrementals" $MAIL_TO # Cleaning -rm -rf $tmpdir \ No newline at end of file +rm -rf $tmpdir +rm $tmplog \ No newline at end of file