| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | #!/usr/bin/bash
 | 
					
						
							|  |  |  | #---------------------------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | cd $(dirname $0) | 
					
						
							|  |  |  | PATH=$PATH:$(dirname "$(pwd)") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | # this can be: | 
					
						
							|  |  |  | # 	full | 
					
						
							|  |  |  | # 	list | 
					
						
							|  |  |  | # 	<empty> | 
					
						
							| 
									
										
										
										
											2025-01-21 00:52:51 +03:00
										 |  |  | MIGRATE_CACHE=${MIGRATE_CACHE:-full} | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # NOTE: paths here are relative to appdata_<instance_id>/ | 
					
						
							|  |  |  | MIGRATE_CACHE_FILES=( | 
					
						
							|  |  |  | 	theming/global/images/background | 
					
						
							|  |  |  | 	theming/global/images/logo | 
					
						
							|  |  |  | 	theming/global/images/favicon.ico | 
					
						
							|  |  |  | ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | #---------------------------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | source ../.pct-helpers | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #---------------------------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | readConfig | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #---------------------------------------------------------------------- | 
					
						
							| 
									
										
										
										
											2024-12-30 22:50:24 +03:00
										 |  |  | # CLI... | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-17 23:48:13 +03:00
										 |  |  | usage(){ | 
					
						
							|  |  |  | 	echo "$0 FROM TO" | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-20 23:36:22 +03:00
										 |  |  | if [ $# != 2 ] ; then | 
					
						
							| 
									
										
										
										
											2024-12-29 16:11:23 +03:00
										 |  |  | 	usage | 
					
						
							| 
									
										
										
										
											2024-12-20 23:36:22 +03:00
										 |  |  | 	echo "Not enough arguments." | 
					
						
							|  |  |  | 	exit 1 | 
					
						
							|  |  |  | fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-30 22:50:24 +03:00
										 |  |  | # XXX should we get FROm from config??? | 
					
						
							| 
									
										
										
										
											2024-12-20 23:36:22 +03:00
										 |  |  | FROM=$1 | 
					
						
							|  |  |  | TO=$2 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # XXX should we build TO if it's not there??? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-17 23:48:13 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | #---------------------------------------------------------------------- | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | @ lxc-attach $FROM -- turnkey-occ maintenance:mode --on | 
					
						
							|  |  |  | @ lxc-attach $TO -- turnkey-occ maintenance:mode --on | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-16 16:48:37 +03:00
										 |  |  | # XXX should we sleep here for a minute or 6 as is recommended in the docs??? | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | # 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"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-15 13:45:32 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | # files... | 
					
						
							| 
									
										
										
										
											2024-12-17 00:49:16 +03:00
										 |  |  | @ pct mount $FROM | 
					
						
							|  |  |  | @ pct mount $TO | 
					
						
							| 
									
										
										
										
											2025-01-15 13:45:32 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # mirgate files and data... | 
					
						
							| 
									
										
										
										
											2025-01-13 23:13:50 +03:00
										 |  |  | @ rsync -Aavx \
 | 
					
						
							|  |  |  | 	/var/lib/lxc/$FROM/rootfs/var/www/nextcloud-data/ \
 | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | 	/var/lib/lxc/$TO/rootfs/var/www/nextcloud-data | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | # migrate cache... | 
					
						
							| 
									
										
										
										
											2025-01-22 23:43:17 +03:00
										 |  |  | # XXX TEST... | 
					
						
							| 
									
										
										
										
											2025-01-21 00:52:51 +03:00
										 |  |  | if ! [ -z "$DRY_RUN" ] \
 | 
					
						
							|  |  |  | 		|| [ -e "$FROM_THEME_DIR" ] ; then | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 	# instance id's... | 
					
						
							| 
									
										
										
										
											2025-01-21 02:44:23 +03:00
										 |  |  | 	FROM_INSTANCEID=${DRY_RUN:-$(lxc-attach $FROM -- turnkey-occ config:system:get instanceid)} | 
					
						
							|  |  |  | 	FROM_INSTANCEID=${DRY_RUN:+FROM} | 
					
						
							|  |  |  | 	TO_INSTANCEID=${DRY_RUN:-$(lxc-attach $TO -- turnkey-occ config:system:get instanceid)} | 
					
						
							|  |  |  | 	TO_INSTANCEID=${DRY_RUN:+TO} | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-21 02:46:35 +03:00
										 |  |  | 	FROM_CACHE_DIR=/var/lib/lxc/$TO/rootfs/var/www/nextcloud-data/appdata_$FROM_INSTANCEID | 
					
						
							|  |  |  | 	TO_CACHE_DIR=/var/lib/lxc/$TO/rootfs/var/www/nextcloud-data/appdata_$TO_INSTANCEID | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 	# full... | 
					
						
							|  |  |  | 	if [ "$MIGRATE_CACHE" == "full" ] ; then | 
					
						
							|  |  |  | 		# migrate theming and other instance files... | 
					
						
							| 
									
										
										
										
											2025-01-21 02:46:35 +03:00
										 |  |  | 		[ -e "$TO_CACHE_DIR" ] \
 | 
					
						
							|  |  |  | 			&& @ mv -f "$TO_CACHE_DIR" "${TO_CACHE_DIR}.bak" | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 		@ mv -f \
 | 
					
						
							| 
									
										
										
										
											2025-01-21 02:46:35 +03:00
										 |  |  | 			"$FROM_CACHE_DIR" \
 | 
					
						
							|  |  |  | 			"$TO_CACHE_DIR" | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	# list... | 
					
						
							|  |  |  | 	elif [ "$MIGRATE_CACHE" == "list" ] ; then | 
					
						
							|  |  |  | 		for f in "${MIGRATE_CACHE_FILES[@]}" ; do | 
					
						
							|  |  |  | 			from=${FROM_CACHE_DIR}/$f | 
					
						
							|  |  |  | 			to=${TO_CACHE_DIR}/$f | 
					
						
							| 
									
										
										
										
											2025-01-21 00:52:51 +03:00
										 |  |  | 			if [ -z "$DRY_RUN" ] \
 | 
					
						
							|  |  |  | 					&& ! [ -e "$from" ] ; then | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 				continue | 
					
						
							|  |  |  | 			fi | 
					
						
							| 
									
										
										
										
											2025-01-21 00:52:51 +03:00
										 |  |  | 			@ mkdir -p "$(dirname "$to")" | 
					
						
							|  |  |  | 			@ cp -r "$from" "$to" | 
					
						
							| 
									
										
										
										
											2025-01-21 00:45:39 +03:00
										 |  |  | 		done | 
					
						
							|  |  |  | 	fi | 
					
						
							|  |  |  | fi | 
					
						
							| 
									
										
										
										
											2025-01-15 13:45:32 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-17 00:49:16 +03:00
										 |  |  | @ pct unmount $FROM | 
					
						
							|  |  |  | @ pct unmount $TO | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-15 13:45:32 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-14 16:23:24 +03:00
										 |  |  | @ lxc-attach $FROM -- turnkey-occ maintenance:mode --off | 
					
						
							|  |  |  | @ lxc-attach $TO -- turnkey-occ maintenance:mode --off | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #---------------------------------------------------------------------- | 
					
						
							|  |  |  | # vim:set ts=4 sw=4 nowrap : |