@@ -43,16 +43,18 @@ configure()
43
43
[ -d $BASEDIR_ ] || { echo -e " $BASEDIR_ not found" ; return 1; }
44
44
[ -d $BASEDIR_ /nextcloud ] && { echo -e " WARNING: overwriting old instance" ; }
45
45
46
- cd $BASEDIR_ /nextcloud
47
- sudo -u www-data php occ maintenance:mode --on
46
+ local TMPDIR=" $( dirname $BACKUPFILE_ ) /$( basename ${BACKUPFILE_} -tmp ) "
47
+ rm -rf " $TMPDIR " && mkdir -p " $TMPDIR "
48
+ tar -xf " $BACKUPFILE_ " -C " $TMPDIR " || return 1
49
+
50
+ # # RESTORE FILES
48
51
49
- # RESTORE FILES
50
52
echo -e " restore files..."
51
- cd $BASEDIR_
52
- rm -rf nextcloud
53
- tar -xf $BACKUPFILE_ || return 1
53
+ rm -rf $BASEDIR_ /nextcloud
54
+ mv " $TMPDIR " /nextcloud $BASEDIR_
55
+
56
+ # # RE-CREATE DATABASE TABLE
54
57
55
- # RE-CREATE DATABASE TABLE
56
58
local DBPASSWD=$( grep password /root/.my.cnf | cut -d= -f2 )
57
59
echo -e " restore database..."
58
60
mysql -u root -p$DBPASSWD << EOF
@@ -64,15 +66,48 @@ CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD';
64
66
GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_ @localhost;
65
67
EXIT
66
68
EOF
67
- [ $? -ne 0 ] && { echo -e " error configuring nextcloud database" ; return 1; }
69
+ [ $? -ne 0 ] && { echo -e " Error configuring nextcloud database" ; return 1; }
68
70
69
- mysql -u root -p$DBPASSWD nextcloud < nextcloud-sqlbkp_* .bak || { echo -e " error restoring nextcloud database" ; return 1; }
71
+ mysql -u root -p$DBPASSWD nextcloud < " $TMPDIR " / nextcloud-sqlbkp_* .bak || { echo -e " Error restoring nextcloud database" ; return 1; }
70
72
71
- # Just in case we moved the opcache dir
72
- sed -i " s|^opcache.file_cache=.*|opcache.file_cache=$BASEDIR_ /nextcloud/data/.opcache|" /etc/php/7.0/mods-available/opcache.ini
73
+ # # RESTORE DATADIR
73
74
74
75
cd $BASEDIR_ /nextcloud
75
- sudo -u www-data php occ maintenance:mode --off
76
+
77
+ # INCLUDEDATA=yes situation
78
+
79
+ if [[ $( ls " $TMPDIR " | wc -l ) == 2 ]]; then
80
+ local DATADIR=$( grep datadirectory $BASEDIR_ /nextcloud/config/config.php | awk ' { print $3 }' | grep -oP " [^']*[^']" | head -1 )
81
+ [[ " $DATADIR " == " " ]] && { echo -e " Error reading data directory" ; return 1; }
82
+ echo -e " restore datadir to $DATADIR ..."
83
+ rm -rf " $DATADIR "
84
+ mkdir -p " $( dirname " $DATADIR " ) "
85
+ mv " $TMPDIR /$( basename " $DATADIR " ) " " $DATADIR "
86
+ sudo -u www-data php occ maintenance:mode --off
87
+
88
+ # INCLUDEDATA=no situation
89
+
90
+ else
91
+ echo -e " no datadir found in backup"
92
+ sed -i " s|'datadirectory' =>.*|'datadirectory' => '/var/www/nextcloud/data',|" " config/config.php"
93
+
94
+ sudo -u www-data php occ maintenance:mode --off
95
+ sudo -u www-data php occ files:scan --all
96
+
97
+ # cache needs to be cleaned as of NC 12
98
+ (
99
+ sleep 3
100
+ systemctl stop php7.0-fpm
101
+ systemctl stop mysqld
102
+ sleep 0.5
103
+ systemctl start php7.0-fpm
104
+ systemctl start mysqld
105
+ ) & > /dev/null &
106
+ fi
107
+ rm -r " $TMPDIR "
108
+
109
+ # Just in case we moved the opcache dir
110
+ sed -i " s|^opcache.file_cache=.*|opcache.file_cache=$BASEDIR_ /nextcloud/data/.opcache|" /etc/php/7.0/mods-available/opcache.ini
76
111
}
77
112
78
113
install () { : ; }
0 commit comments