Blame salt/profile/borgbackup/files/borg-backup-cronjob
|
Christian Boltz |
9ccde7 |
#!/bin/bash
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
. $(dirname $0)/borg-backup-env
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
errorexit() {
|
|
Christian Boltz |
9ccde7 |
mail -s 'BorgBackup' root < $LOG
|
|
Christian Boltz |
9ccde7 |
exit $?
|
|
Christian Boltz |
9ccde7 |
}
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
##
|
|
Christian Boltz |
9ccde7 |
## write output to logfile
|
|
Christian Boltz |
9ccde7 |
##
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
exec > >(tee -i ${LOG})
|
|
Christian Boltz |
9ccde7 |
exec 2>&1
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
echo "###### Backup started: $(date) ######"
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
##
|
|
Christian Boltz |
9ccde7 |
## You can do some tasks before starting the backup here, for example
|
|
Christian Boltz |
9ccde7 |
## - create a list of installed software
|
|
Christian Boltz |
9ccde7 |
## - create database dumps
|
|
Christian Boltz |
9ccde7 |
##
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
##
|
|
Christian Boltz |
9ccde7 |
## Transfer files to repository
|
|
Christian Boltz |
9ccde7 |
##
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
borg create -v --stats \
|
|
Christian Boltz |
9ccde7 |
--compression zstd,18 \
|
|
Christian Boltz |
9ccde7 |
$REPOSITORY::'{now:%Y-%m-%d_%H-%M}' \
|
|
Christian Boltz |
9ccde7 |
/ \
|
|
Christian Boltz |
9ccde7 |
--exclude /backup \
|
|
Christian Boltz |
9ccde7 |
--exclude /dev \
|
|
Christian Boltz |
9ccde7 |
--exclude /lost+found \
|
|
Christian Boltz |
9ccde7 |
--exclude /mnt \
|
|
Christian Boltz |
9ccde7 |
--exclude /proc \
|
|
Christian Boltz |
9ccde7 |
--exclude /run \
|
|
Christian Boltz |
9ccde7 |
--exclude /sys \
|
|
Christian Boltz |
9ccde7 |
--exclude /var/run \
|
|
Christian Boltz |
9ccde7 |
|| { echo "Error $? during backup, aborting" ; errorexit 1; }
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
echo
|
|
Christian Boltz |
9ccde7 |
echo
|
|
Christian Boltz |
9ccde7 |
echo "Deleting old backups..."
|
|
Christian Boltz |
9ccde7 |
borg prune \
|
|
Christian Boltz |
9ccde7 |
--stats \
|
|
Christian Boltz |
9ccde7 |
--list \
|
|
Christian Boltz |
9ccde7 |
--keep-hourly 12 \
|
|
Christian Boltz |
9ccde7 |
--keep-daily 7 \
|
|
Christian Boltz |
9ccde7 |
--keep-weekly 4 \
|
|
Christian Boltz |
9ccde7 |
--keep-monthly 6 \
|
|
Christian Boltz |
9ccde7 |
|| { echo "Error $? while deleting old backups, aborting" ; errorexit 2; }
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
echo "###### Backup finished: $(date) ######"
|
|
Christian Boltz |
9ccde7 |
|
|
Christian Boltz |
9ccde7 |
errorexit 0
|