#!/bin/bash TODAY=$(date +%Y%m%d) YESTERDAY=$(date --date '1 day ago' +%Y%m%d) # Backup Mastodon database MASTODON_DB_CONTAINER=$(docker ps | grep mastodon_postgresql | awk '{print $1}') docker exec -it ${MASTODON_DB_CONTAINER} bash -c 'rm -rf /var/lib/postgresql/data/'${YESTERDAY}' || true ; mkdir /var/lib/postgresql/data/'${TODAY}' || true' docker exec -it ${MASTODON_DB_CONTAINER} bash -c 'pg_dumpall -c -U mastodon > /var/lib/postgresql/data/'${TODAY}'/mastodon-dump.sql' # Backup miniflux database MINIFLUX_DB_CONTAINER=$(docker ps | grep miniflux_database | awk '{print $1}') docker exec -it ${MINIFLUX_DB_CONTAINER} bash -c 'rm -rf /var/lib/postgresql/data/'${YESTERDAY}' || true ; mkdir /var/lib/postgresql/data/'${TODAY}' || true' docker exec -it ${MINIFLUX_DB_CONTAINER} bash -c 'pg_dumpall -c -U miniflux > /var/lib/postgresql/data/'${TODAY}'/miniflux-dump.sql' # Backup writefreely database MARIADB_ROOT_PASSWORD=$(grep MARIADB_ROOT_PASSWORD /opt/writefreely/docker/docker-compose.yml | awk -F'=' '{print $2}') WRITEFREELY_DB_CONTAINER=$(docker ps | grep writefreely-db | awk '{print $1}') docker exec -it ${WRITEFREELY_DB_CONTAINER} bash -c 'rm -rf /var/lib/mysql/'${YESTERDAY}' || true ; mkdir /var/lib/mysql/'${TODAY}' || true' docker exec -it ${WRITEFREELY_DB_CONTAINER} bash -c 'mariadb-dump --user=root --password='${MARIADB_ROOT_PASSWORD}' --all-databases > /var/lib/mysql/'${TODAY}'/writefreely-dump.sql' # Backup everything else to rsync.net rsync -az /opt user@user.rsync.net:backup/