experimenting...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2024-12-14 16:03:29 +03:00
parent 802923994a
commit 2ca1aabf3b
2 changed files with 64 additions and 8 deletions

View File

@ -38,6 +38,16 @@ function @ (){
return $? return $?
} }
function @@ (){
if [ -z $DRY_RUN ] ; then
! [ $QUIET ] \
&& echo -e "${ECHO_PREFIX}$@"
eval "$@"
else
echo -e $@
fi
return $?
}
#---------------------------------------------------------------------- #----------------------------------------------------------------------

View File

@ -22,33 +22,79 @@ readConfig
# see: # see:
# https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html # https://docs.nextcloud.com/server/latest/admin_manual/maintenance/backup.html
if [ $1 == 'backup' ] ; then if [ $1 == 'backup' ] ; then
# XXX maintenance mode: # XXX confirm vars...
# turnkey-occ maintenance:mode --on # XXX
# XXX files:
# rsync -Aavx nextcloud/ nextcloud-dirbkp_`date +"%Y%m%d"`/ 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: # XXX db:
# mysqldump --single-transaction \ # mysqldump --single-transaction \
# -h [server] -u [username] -p[password] [db_name] \ # -h [server] -u [username] -p[password] \
# [db_name] \
# > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak # > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
# or: # or:
# mysqldump --single-transaction --default-character-set=utf8mb4 \ # mysqldump --single-transaction --default-character-set=utf8mb4 \
# -h [server] -u [username] -p[password] [db_name] \ # -h [server] -u [username] -p[password] \
# [db_name] \
# > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak # > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak
# XXX maintenance mode: @ lxc-attach $ID -- mysqldump --single-transaction nextcloud > nextcloud.sql
# turnkey-occ maintenance:mode --off
# 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 exit
# Restore backup... # Restore backup...
# see: # see:
# https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html # https://docs.nextcloud.com/server/latest/admin_manual/maintenance/restore.html
elif [ $1 == 'restore' ] ; then elif [ $1 == 'restore' ] ; then
# XXX confirm vars...
# XXX # XXX
@ lxc-attach $ID -- turnkey-occ maintenance:mode --on
# XXX
@ lxc-attach $ID -- turnkey-occ maintenance:mode --off
exit exit
# Migrate... # Migrate...
elif [ $1 == 'migrate' ] ; then elif [ $1 == 'migrate' ] ; then
# XXX similar to make.sh backup && make.sh restore but copies data directly (rsync)... # XXX similar to make.sh backup && make.sh restore but copies data directly (rsync)...
# XXX # 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 exit
fi fi