#!/bin/zsh set -x ECHOCMD="" export BORG_REPO="/home/fran/backups/nextcloud/backuprepo" SQLBKP="nextcloud-sqlbkp.bak" ARCHIVE_BASE_NAME="nextcloud-{now:%Y-%m-%d}" function borgcreate { archive_name="${ARCHIVE_BASE_NAME}${1}" target_dirs="${2} ${3}" ( eval $(ssh-agent) > /dev/null ssh-add -q ~/.ssh/borg-fserver_key ssh-add -q ~/.ssh/borg-fdell_key $ECHOCMD ssh -A -i ~/.ssh/borg-fdell_key fran@fserver \ "borg create \ --stats \ --show-rc \ --compression lz4 \ fran@nas:${BORG_REPO}::${archive_name} \ ${target_dirs}" kill "${SSH_AGENT_PID}" ) } borgcreate "-temp" "/var/www/nextcloud" $ECHOCMD ssh fserver "sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on" $ECHOCMD ssh fserver "PGPASSWORD=webosfritos sudo -E pg_dump nextcloud -h localhost -U nextcloud > $SQLBKP" borgcreate "" "/var/www/nextcloud" ${SQLBKP} $ECHOCMD ssh fserver "sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off" $ECHOCMD borg delete --glob-archives "*-temp" $ECHOCMD borg prune \ --list \ --prefix "nextcloud-" \ --show-rc \ --keep-daily 7 \ --keep-weekly 4 \ --keep-monthly 6 $ECHOCMD borg info --show-rc ::${ARCHIVE_BASE_NAME} # tar -cz --acls --xattrs -f - $DIR | pv -s $(du -sb $DIR | awk '{print $1}') | gzip > "${DIR}_${DATE}.tar.gz" # Recover from backup: # mkdir nextcloud # mkdir nextcloud/data # # rsync everything in /var/www/nextcloud/ # chown -R www-data:www-data nextcloud # sudo chmod g+w /var/www/nextcloud/data # sudo -u postgres psql -d template1 # template1=# drop database nextcloud; # template1=# create database nextcloud owner nextcloud; # sudo -u postgres psql -d nextcloud -f /home/fran/nextcloud-sqlbkp_20210402.bak # sudo crontab -u www-data -e # # */5 * * * * php -f /var/www/nextcloud/cron.php # sudo -u www-data php /var/www/nextcloud/occ maintenance:data-fingerprint # sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off