Files
nas-scripts/nextcloud_backup
2023-10-27 12:56:35 +02:00

72 lines
2.0 KiB
Bash
Executable File

#!/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