self-hosting/roles/daily-backup/templates/fullBackup.sh

67 lines
2.2 KiB
Bash
Raw Normal View History

2018-01-02 05:03:19 +01:00
#!/bin/sh
set -e
touch /backups/backup-ongoing
2018-01-02 05:03:19 +01:00
REPOSITORY=ssh://backup@phf.ddns.net:2222/./backup
export BORG_PASSPHRASE='{{backup_borg_passphrase}}'
echo 'Dumping NextCloud database'
docker exec nextcloud_db_1 sh -c "mysqldump -u nextcloud -p{{nextcloud_mysql_password}} nextcloud > /backups/database.dmp"
2018-07-28 02:17:47 +02:00
echo 'Dumping S.T.B. wordpress database'
docker exec stb_db_1 sh -c "mysqldump -u stb -p{{stb_mysql_password}} stb > /backups/database.dmp"
2018-01-02 05:03:19 +01:00
echo 'Dumping matrix database'
docker exec matrix_db_1 sh -c "pg_dump -U synapse synapse > /backups/database.dmp"
echo 'Copying murmur database'
docker stop murmur_murmur_1
cp /var/lib/murmur/murmur.sqlite /backups/murmur/murmur.sqlite
docker start murmur_murmur_1
echo 'Creating GitLab backup'
docker exec gitlab_gitlab_1 gitlab-rake gitlab:backup:create
echo 'Starting Borg backup'
borg create -v --stats --compression lz4 \
${REPOSITORY}::'{hostname}-{now:%Y-%m-%d}' \
/root \
/home \
/media \
2018-01-02 05:03:19 +01:00
/etc \
/var/lib/deluge \
/var/lib/mailu \
/var/lib/matrix/media_store \
/var/lib/nextcloud \
/var/lib/wiki \
2018-07-28 02:17:47 +02:00
/var/lib/stb \
2018-03-21 23:17:59 +01:00
/var/lib/nzbget \
2018-01-02 05:03:19 +01:00
/backups \
--exclude '/var/lib/nextcloud/db'
2018-01-02 05:03:19 +01:00
# Route the normal process logging to journalctl
2>&1
# If there is an error backing up, reset password envvar and exit
if [ "$?" = "1" ] ; then
export BORG_PASSPHRASE=""
exit 1
fi
# Use the `prune` subcommand to maintain 14 daily, 8 weekly and 12 monthly
# archives of THIS machine. The '{hostname}-' prefix is very important to
# limit prune's operation to this machine's archives and not apply to
# other machine's archives also.
borg prune -v --list ${REPOSITORY} --prefix '{hostname}-' \
--keep-daily=14 --keep-weekly=8 --keep-monthly=12
# Unset the password
export BORG_PASSPHRASE=""
rm -f /backups/backup-ongoing
2018-01-02 05:03:19 +01:00
touch /backups/backup-ok
exit 0