72 lines
2.0 KiB
Bash
Executable File
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
|