Back up nextcloud
This commit is contained in:
71
nextcloud_backup
Executable file
71
nextcloud_backup
Executable file
@@ -0,0 +1,71 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user