ansible/roles/shell/files/usr/local/bin/backup

55 lines
1.3 KiB
Plaintext
Raw Normal View History

#!/bin/bash
2020-12-19 17:44:38 +00:00
DATE=$(date +%Y%m%d)
2020-12-20 22:48:16 +00:00
BACKUPS=/var/backups
2020-12-19 17:44:38 +00:00
2021-09-24 17:02:15 +00:00
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
2020-12-21 09:11:07 +00:00
tar -cz \
--exclude ".nobackup" \
--exclude "nobackup" \
--exclude ".thunix/nobackup" \
--exclude "/home/irc/*" \
--exclude='/home/slip/*' \
--exclude='/home/angelok/*' \
--exclude='/home/usernameak/*' \
--exclude='/home/ubergeek/*' \
--exclude='/home/amcclure/*' \
--exclude='/home/fosslinux/*' \
--exclude='/home/zszoke/*' \
--exclude='/home/duitser/*' \
/home/ \
/var/games/minetest-server/.minetest/ \
2021-09-21 05:42:39 +00:00
/var/lib/minecraft/paper/ \
/var/lib/bzflag/ \
2021-09-20 05:06:34 +00:00
/var/lib/znc/configs/ /var/lib/znc/moddata/ \
/var/spool/cron/ \
/var/spool/anacron/ \
2021-09-24 17:02:15 +00:00
-g $BACKUPS/incremental-backup.snapshot \
-f $BACKUPS/$DATE-$TYPE.tgz
2021-09-19 21:45:57 +00:00
chown root:sudo $BACKUPS/$DATE*.tgz
chmod 640 $BACKUPS/*.tgz
2021-09-24 17:02:15 +00:00
# Remove dumps and the previous backup once there is another.
2021-09-24 18:06:03 +00:00
if [ $TYPE = full ] && [ -e $LEVEL0 ]
2021-09-24 17:02:15 +00:00
then
rm $LEVEL0 $BACKUPS/*incremental.tgz
fi
2020-12-20 22:48:16 +00:00
mysqldump --all-databases > $BACKUPS/$DATE-all_databases.sql
tar --remove-files -cz $BACKUPS/$DATE-all_databases.sql \
-f $BACKUPS/$DATE-all_databases.sql.tgz
2020-12-19 18:15:13 +00:00
2020-12-20 22:48:16 +00:00
chown root:sudo $BACKUPS/$DATE*.tgz
chmod 640 $BACKUPS/*.tgz