@@ -31,7 +31,7 @@ install()
31
31
{
32
32
cat > /usr/local/bin/ncp-restore << 'EOF '
33
33
#!/bin/bash
34
- set -e
34
+ set -eE
35
35
36
36
BACKUPFILE="$1"
37
37
@@ -42,9 +42,10 @@ DBPASSWD="$( grep password /root/.my.cnf | sed 's|password=||' )"
42
42
[ -f "$BACKUPFILE" ] || { echo "$BACKUPFILE not found" ; exit 1; }
43
43
[ -d /var/www/nextcloud ] && { echo "INFO: overwriting old instance"; }
44
44
45
- TMPDIR="$( mktemp -d "$( dirname $BACKUPFILE )"/ncp-restore.XXXXXX )" || { echo "Failed to create temp dir" >&2; exit 1; }
46
- cleanup(){ local RET=$?; echo "Cleanup..."; rm -rf "${TMPDIR}"; exit $RET; }
47
- trap cleanup INT TERM HUP EXIT
45
+ TMPDIR="$( mktemp -d "$( dirname "$BACKUPFILE" )"/ncp-restore.XXXXXX )" || { echo "Failed to create temp dir" >&2; exit 1; }
46
+ TMPDIR="$( cd "$TMPDIR" &>/dev/null && pwd )" || { echo "$TMPDIR not found"; exit 1; } #abspath
47
+ cleanup(){ local RET=$?; echo "Cleanup..."; rm -rf "${TMPDIR}"; trap "" EXIT; exit $RET; }
48
+ trap cleanup INT TERM HUP ERR EXIT
48
49
rm -rf "$TMPDIR" && mkdir -p "$TMPDIR"
49
50
50
51
# EXTRACT FILES
@@ -136,28 +137,35 @@ else
136
137
sudo -u www-data php occ maintenance:mode --off
137
138
sudo -u www-data php occ files:scan --all
138
139
139
- # Just in case we moved the opcache dir
140
- sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR/.opcache|" /etc/php/7.0/mods-available/opcache.ini
141
-
142
140
# cache needs to be cleaned as of NC 12
143
- bash -c " sleep 3
144
- systemctl stop php7.0-fpm
145
- systemctl stop mysqld
146
- sleep 0.5
147
- systemctl start php7.0-fpm
148
- systemctl start mysqld
149
- " &>/dev/null &
141
+ NEED_RESTART=1
150
142
fi
151
143
152
144
# Just in case we moved the opcache dir
153
145
sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR/.opcache|" /etc/php/7.0/mods-available/opcache.ini
154
146
147
+ # tmp upload dir
148
+ mkdir -p "$DATADIR/tmp"
149
+ chown www-data:www-data "$DATADIR/tmp"
150
+ sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/7.0/fpm/php.ini
151
+ sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR/tmp|" /etc/php/7.0/fpm/php.ini
152
+
155
153
# update fail2ban logpath
156
154
sed -i "s|logpath =.*|logpath = $DATADIR/nextcloud.log|" /etc/fail2ban/jail.conf
157
155
pgrep fail2ban &>/dev/null && service fail2ban restart
158
156
159
157
# refresh nextcloud trusted domains
160
158
bash /usr/local/bin/nextcloud-domain.sh
159
+
160
+ # restart PHP if needed
161
+ [[ "$NEED_RESTART" == "1" ]] && \
162
+ bash -c " sleep 3
163
+ systemctl stop php7.0-fpm
164
+ systemctl stop mysqld
165
+ sleep 0.5
166
+ systemctl start php7.0-fpm
167
+ systemctl start mysqld
168
+ " &>/dev/null &
161
169
EOF
162
170
chmod +x /usr/local/bin/ncp-restore
163
171
}
0 commit comments