Fixed full dumps on system files added comments

This commit is contained in:
root 2024-08-21 15:19:42 +00:00
parent 32e4464c2b
commit 2b153f37df

View File

@ -68,43 +68,43 @@ backup_service() {
# Dump only users and roles for postgresql service # Dump only users and roles for postgresql service
if [ "$SERVICE" = "postgresql" ]; then if [ "$SERVICE" = "postgresql" ]; then
docker exec postgresql /bin/bash -c "pg_dumpall --globals-only -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$SERVICE.sql.gz" docker exec postgresql /bin/bash -c "pg_dumpall --globals-only -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$SERVICE.sql.gz"
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/postgresql/data/docker-entrypoint-initdb.d/dump_* rm /federated/apps/postgresql/data/docker-entrypoint-initdb.d/dump_*
# Dump mysql databases # Dump mysql databases
elif [ "$SERVICE" = "pdnsmysql" ]; then elif [ "$SERVICE" = "pdnsmysql" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} mysql user | gzip -9 > /federated/apps/pdnsmysql/dump_$SERVICE.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} mysql user | gzip -9 > /federated/apps/pdnsmysql/dump_$SERVICE.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/pdnsmysql/dump_$SERVICE.sql.gz rm /federated/apps/pdnsmysql/dump_$SERVICE.sql.gz
elif [ "$SERVICE" = "pdns" ]; then elif [ "$SERVICE" = "pdns" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} pdns | gzip -9 > /federated/apps/pdns/dump_$SERVICE.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} pdns | gzip -9 > /federated/apps/pdns/dump_$SERVICE.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/pdns/dump_$SERVICE.sql.gz rm /federated/apps/pdns/dump_$SERVICE.sql.gz
elif [ "$SERVICE" = "pdnsadmin" ]; then elif [ "$SERVICE" = "pdnsadmin" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} pdns | gzip -9 > /federated/apps/pdnsadmin/dump_$SERVICE.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} pdns | gzip -9 > /federated/apps/pdnsadmin/dump_$SERVICE.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/pdnsadmin/dump_$SERVICE.sql.gz rm /federated/apps/pdnsadmin/dump_$SERVICE.sql.gz
elif [ "$SERVICE" = "castopod" ]; then elif [ "$SERVICE" = "castopod" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} castopod | gzip -9 > /federated/apps/castopod/dump_$SERVICE.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} castopod | gzip -9 > /federated/apps/castopod/dump_$SERVICE.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/castopod/dump_$SERVICE.sql.gz rm /federated/apps/castopod/dump_$SERVICE.sql.gz
elif [ "$SERVICE" = "wordpress" ]; then elif [ "$SERVICE" = "wordpress" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} wordpress | gzip -9 > /federated/apps/wordpress/dump_$SERVICE.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} wordpress | gzip -9 > /federated/apps/wordpress/dump_$SERVICE.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/wordpress/dump_$SERVICE.sql.gz rm /federated/apps/wordpress/dump_$SERVICE.sql.gz
elif [ "$SERVICE" = "bookstack" ]; then elif [ "$SERVICE" = "bookstack" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} bookstack | gzip -9 > /federated/apps/bookstack/dump_$SERVICE.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} bookstack | gzip -9 > /federated/apps/bookstack/dump_$SERVICE.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/bookstack/dump_$SERVICE.sql.gz rm /federated/apps/bookstack/dump_$SERVICE.sql.gz
elif [ "$SERVICE" = "espocrm" ]; then elif [ "$SERVICE" = "espocrm" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} espocrm | gzip -9 > /federated/apps/espocrm/dump_$SERVICE.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} espocrm | gzip -9 > /federated/apps/espocrm/dump_$SERVICE.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/espocrm/dump_$SERVICE.sql.gz rm /federated/apps/espocrm/dump_$SERVICE.sql.gz
else else
@ -115,7 +115,7 @@ backup_service() {
[ $? -ne 0 ] && failcheck "* Couldn't pg_dump files" [ $? -ne 0 ] && failcheck "* Couldn't pg_dump files"
mv /federated/apps/postgresql/data/docker-entrypoint-initdb.d/dump_$SERVICE.sql.gz /federated/apps/$SERVICE/ mv /federated/apps/postgresql/data/docker-entrypoint-initdb.d/dump_$SERVICE.sql.gz /federated/apps/$SERVICE/
fi fi
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$SERVICE b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$SERVICE/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
[ -f "/federated/apps/$SERVICE/dump_$SERVICE.sql.gz" ] && rm /federated/apps/$SERVICE/dump_$SERVICE.sql.gz [ -f "/federated/apps/$SERVICE/dump_$SERVICE.sql.gz" ] && rm /federated/apps/$SERVICE/dump_$SERVICE.sql.gz
fi fi
@ -126,19 +126,19 @@ backup_system() {
echo "* Backing up system files in /federated/{bin,certs,lib,logs}.." echo "* Backing up system files in /federated/{bin,certs,lib,logs}.."
echo "* Backing up system files in /federated/bin.." echo "* Backing up system files in /federated/bin.."
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/bin b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/bin/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/bin b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/bin/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
echo "* Backing up system files in /federated/certs.." echo "* Backing up system files in /federated/certs.."
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/certs b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/certs/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/certs b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/certs/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
echo "* Backing up system files in /federated/lib.." echo "* Backing up system files in /federated/lib.."
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/lib b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/lib/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/lib b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/lib/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
echo "* Backing up system files in /federated/logs.." echo "* Backing up system files in /federated/logs.."
PASSPHRASE=$GPG_PASSPHRASE duplicity /federated/logs b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/logs/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/logs b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/logs/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
} }
backup_allservices() { backup_allservices() {
@ -151,10 +151,12 @@ backup_allservices() {
# Backup service # Backup service
echo "** Backing up /federated/apps/$i.." echo "** Backing up /federated/apps/$i.."
if [ "$i" = "postgresql" ]; then if [ "$i" = "postgresql" ]; then
# Dump postgresql global objects only, no databases
docker exec postgresql /bin/bash -c "pg_dumpall --globals-only -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$i.sql.gz" docker exec postgresql /bin/bash -c "pg_dumpall --globals-only -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$i.sql.gz"
PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$i b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$i/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$i b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$i/
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/postgresql/data/docker-entrypoint-initdb.d/dump_* rm /federated/apps/postgresql/data/docker-entrypoint-initdb.d/dump_*
# Dump all MySQL databases specified by name below
elif [ "$i" = "pdnsmysql" ]; then elif [ "$i" = "pdnsmysql" ]; then
docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} mysql user | gzip -9 > /federated/apps/pdnsmysql/dump_$i.sql.gz docker exec pdnsmysql mysqldump -uroot -p${MYSQL_PASSWORD} mysql user | gzip -9 > /federated/apps/pdnsmysql/dump_$i.sql.gz
PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$i b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$i/ PASSPHRASE=$GPG_PASSPHRASE duplicity --full-if-older-than 1M /federated/apps/$i b2://$B2_APPLICATION_KEY_ID:$B2_APPLICATION_KEY@fed-customers/$UUID/federated/apps/$i/
@ -191,6 +193,9 @@ backup_allservices() {
[ $? -ne 0 ] && failcheck "* Couldn't backup files" [ $? -ne 0 ] && failcheck "* Couldn't backup files"
rm /federated/apps/espocrm/dump_$i.sql.gz rm /federated/apps/espocrm/dump_$i.sql.gz
else else
# If the service isn't directly specified above then check if a postgresql database exists for
# that service, if so then move it to it's /federated/apps/appname directory and sync it to backblaze
# This is done for all postgresql services except "postgresql" service above
docker exec postgresql psql -U $i -c '\q' &>/dev/null docker exec postgresql psql -U $i -c '\q' &>/dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
docker exec postgresql /bin/bash -c "pg_dump $i -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$i.sql.gz" docker exec postgresql /bin/bash -c "pg_dump $i -c -U postgres | gzip -9 > /docker-entrypoint-initdb.d/dump_$i.sql.gz"