working on migration and backups...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2024-12-14 16:23:24 +03:00
parent 2ca1aabf3b
commit fd4b075a26
5 changed files with 151 additions and 83 deletions

View File

@ -38,6 +38,7 @@ function @ (){
return $?
}
# XXX should @@ and @ be the same -- use eval???
function @@ (){
if [ -z $DRY_RUN ] ; then
! [ $QUIET ] \

61
nextcloud/backup.sh Executable file
View File

@ -0,0 +1,61 @@
#!/usr/bin/bash
#----------------------------------------------------------------------
cd $(dirname $0)
PATH=$PATH:$(dirname "$(pwd)")
#----------------------------------------------------------------------
source ../.pct-helpers
#----------------------------------------------------------------------
readConfig
#----------------------------------------------------------------------
#
# see:
# https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html
# XXX confirm vars...
# XXX
DATE=$(date +%Y%m%d%H%M)
DIR=${DATE}-${CTHOSTNAME}-${ID}
#----------------------------------------------------------------------
mkdir "${DIR}"
cd "${DIR}"
@ lxc-attach $ID -- turnkey-occ maintenance:mode --on
# sql...
# XXX db:
# mysqldump --single-transaction \
# -h [server] -u [username] -p[password] \
# [db_name] \
# > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
# or:
# mysqldump --single-transaction --default-character-set=utf8mb4 \
# -h [server] -u [username] -p[password] \
# [db_name] \
# > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
@ lxc-attach $ID -- mysqldump --single-transaction nextcloud > nextcloud.sql
# files...
pct mount $ID
rsync -Aavx /var/lib/lxc/$ID/rootfs/var/www/nextcloud-data .
pct unmount $ID
@ lxc-attach $ID -- turnkey-occ maintenance:mode --off
#----------------------------------------------------------------------
# vim:set ts=4 sw=4 nowrap :

View File

@ -15,89 +15,6 @@ source ../.pct-helpers
readConfig
#----------------------------------------------------------------------
# backup/restore...
# Backup...
# see:
# https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html
if [ $1 == 'backup' ] ; then
# XXX confirm vars...
# XXX
DATE=$(date +%Y%m%d%H%M)
DIR=${DATE}-${CTHOSTNAME}-${ID}
mkdir "${DIR}"
cd "${DIR}"
@ lxc-attach $ID -- turnkey-occ maintenance:mode --on
# sql...
# XXX db:
# mysqldump --single-transaction \
# -h [server] -u [username] -p[password] \
# [db_name] \
# > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
# or:
# mysqldump --single-transaction --default-character-set=utf8mb4 \
# -h [server] -u [username] -p[password] \
# [db_name] \
# > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
@ lxc-attach $ID -- mysqldump --single-transaction nextcloud > nextcloud.sql
# files...
pct mount $ID
rsync -Aavx /var/lib/lxc/$ID/rootfs/var/www/nextcloud-data .
pct unmount $ID
@ lxc-attach $ID -- turnkey-occ maintenance:mode --off
exit
# Restore backup...
# see:
# https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html
elif [ $1 == 'restore' ] ; then
# XXX confirm vars...
# XXX
@ lxc-attach $ID -- turnkey-occ maintenance:mode --on
# XXX
@ lxc-attach $ID -- turnkey-occ maintenance:mode --off
exit
# Migrate...
elif [ $1 == 'migrate' ] ; then
# XXX similar to make.sh backup && make.sh restore but copies data directly (rsync)...
# XXX
@ lxc-attach $A -- turnkey-occ maintenance:mode --on
@ lxc-attach $B -- turnkey-occ maintenance:mode --on
# sql
# mysql -h [server] -u [username] -p[password] -e "DROP DATABASE nextcloud"
# mysql -h [server] -u [username] -p[password] -e "CREATE DATABASE nextcloud"
# mysql -h [server] -u [username] -p[password] [db_name] < nextcloud-sqlbkp.bak
# XXX need to echo this -- @ will not work here as we need to include the pipe...
(lxc-attach $A -- mysqldump --single-transaction nextcloud \
| lxc-attach $B -- mysql nextcloud)
# files...
pct mount $A
pct mount $B
rsync -Aavx \
/var/lib/lxc/$A/rootfs/var/www/nextcloud-data
/var/lib/lxc/$B/rootfs/var/www/nextcloud-data
pct unmount $A
pct unmount $B
@ lxc-attach $A -- turnkey-occ maintenance:mode --off
@ lxc-attach $B -- turnkey-occ maintenance:mode --off
exit
fi
#----------------------------------------------------------------------
# build...

49
nextcloud/migrate.sh Executable file
View File

@ -0,0 +1,49 @@
#!/usr/bin/bash
#----------------------------------------------------------------------
cd $(dirname $0)
PATH=$PATH:$(dirname "$(pwd)")
#----------------------------------------------------------------------
source ../.pct-helpers
#----------------------------------------------------------------------
readConfig
#----------------------------------------------------------------------
#----------------------------------------------------------------------
@ lxc-attach $FROM -- turnkey-occ maintenance:mode --on
@ lxc-attach $TO -- turnkey-occ maintenance:mode --on
# sql
@ lxc-attach $TO -- mysql -e "DROP DATABASE nextcloud"
@ lxc-attach $TO -- mysql -e "CREATE DATABASE nextcloud"
@@ "lxc-attach $FROM -- mysqldump --single-transaction nextcloud \
| lxc-attach $TO -- mysql nextcloud"
# files...
pct mount $FROM
pct mount $TO
rsync -Aavx \
/var/lib/lxc/$FROM/rootfs/var/www/nextcloud-data
/var/lib/lxc/$TO/rootfs/var/www/nextcloud-data
pct unmount $FROM
pct unmount $TO
@ lxc-attach $FROM -- turnkey-occ maintenance:mode --off
@ lxc-attach $TO -- turnkey-occ maintenance:mode --off
#----------------------------------------------------------------------
# vim:set ts=4 sw=4 nowrap :

40
nextcloud/restore.sh Executable file
View File

@ -0,0 +1,40 @@
#!/usr/bin/bash
#----------------------------------------------------------------------
cd $(dirname $0)
PATH=$PATH:$(dirname "$(pwd)")
#----------------------------------------------------------------------
source ../.pct-helpers
#----------------------------------------------------------------------
readConfig
#----------------------------------------------------------------------
# Restore backup...
# see:
# https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html
#----------------------------------------------------------------------
# XXX confirm vars...
# XXX
@ lxc-attach $ID -- turnkey-occ maintenance:mode --on
# XXX
@ lxc-attach $ID -- turnkey-occ maintenance:mode --off
#----------------------------------------------------------------------
# vim:set ts=4 sw=4 nowrap :