Handle incremental backups

This commit is contained in:
Naglfar 2021-09-24 19:02:15 +02:00
parent ec30d1430c
commit bd3d896030
1 changed files with 18 additions and 2 deletions

View File

@ -3,7 +3,16 @@
DATE=$(date +%Y%m%d) DATE=$(date +%Y%m%d)
BACKUPS=/var/backups BACKUPS=/var/backups
find $BACKUPS -name "*.tgz" -mtime +3 -exec rm {} \; LEVEL0=$(find $BACKUPS -name "*full.tgz")
DUMPS=$(find $BACKUPS -name "*incremental.tgz" | wc -l)
if [ -e $LEVEL0 ] && [ $DUMPS -le 8 ]
then
TYPE=incremental
else
TYPE=full
rm -f $BACKUPS/incremental-backup.snapshot
fi
tar -cz \ tar -cz \
--exclude ".nobackup" \ --exclude ".nobackup" \
@ -25,11 +34,18 @@ tar -cz \
/var/lib/znc/configs/ /var/lib/znc/moddata/ \ /var/lib/znc/configs/ /var/lib/znc/moddata/ \
/var/spool/cron/ \ /var/spool/cron/ \
/var/spool/anacron/ \ /var/spool/anacron/ \
-f $BACKUPS/$DATE.tgz -g $BACKUPS/incremental-backup.snapshot \
-f $BACKUPS/$DATE-$TYPE.tgz
chown root:sudo $BACKUPS/$DATE*.tgz chown root:sudo $BACKUPS/$DATE*.tgz
chmod 640 $BACKUPS/*.tgz chmod 640 $BACKUPS/*.tgz
# Remove dumps and the previous backup once there is another.
if [ $TYPE -eq "full" ] && [ -e $LEVEL0 ]
then
rm $LEVEL0 $BACKUPS/*incremental.tgz
fi
mysqldump --all-databases > $BACKUPS/$DATE-all_databases.sql mysqldump --all-databases > $BACKUPS/$DATE-all_databases.sql
tar --remove-files -cz $BACKUPS/$DATE-all_databases.sql \ tar --remove-files -cz $BACKUPS/$DATE-all_databases.sql \
-f $BACKUPS/$DATE-all_databases.sql.tgz -f $BACKUPS/$DATE-all_databases.sql.tgz