Skip to content

Commit 956eea4

Browse files
committed
nc-restore: try to detect old datadir in dataless restoration
Signed-off-by: nachoparker <[email protected]>
1 parent 4f29d94 commit 956eea4

File tree

5 files changed

+40
-23
lines changed

5 files changed

+40
-23
lines changed

bin/ncp/BACKUPS/nc-restore.sh

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -93,16 +93,16 @@ mysql -u root nextcloud < "$TMPDIR"/nextcloud-sqlbkp_*.bak || { echo "Error res
9393
9494
## RESTORE DATADIR
9595
96+
DATADIR=$( grep datadirectory "$NCDIR"/config/config.php | awk '{ print $3 }' | grep -oP "[^']*[^']" | head -1 )
97+
[[ "$DATADIR" == "" ]] && { echo "Error reading data directory"; exit 1; }
98+
9699
cd "$NCDIR"
97100
98101
### INCLUDEDATA=yes situation
99102
100103
NUMFILES=2
101104
if [[ $( ls "$TMPDIR" | wc -l ) -eq $NUMFILES ]]; then
102105
103-
DATADIR=$( grep datadirectory "$NCDIR"/config/config.php | awk '{ print $3 }' | grep -oP "[^']*[^']" | head -1 )
104-
[[ "$DATADIR" == "" ]] && { echo "Error reading data directory"; exit 1; }
105-
106106
[[ -e "$DATADIR" ]] && {
107107
echo "backing up existing $DATADIR to $DATADIR-$( date "+%m-%d-%y" )..."
108108
mv "$DATADIR" "$DATADIR-$( date "+%m-%d-%y" )" || exit 1
@@ -115,21 +115,29 @@ if [[ $( ls "$TMPDIR" | wc -l ) -eq $NUMFILES ]]; then
115115
rmdir "$DATADIR" || exit 1
116116
btrfs subvolume create "$DATADIR" || exit 1
117117
}
118-
chown www-data:www-data "$DATADIR"
118+
chown www-data: "$DATADIR"
119119
TMPDATA="$TMPDIR/$( basename "$DATADIR" )"
120120
mv "$TMPDATA"/* "$TMPDATA"/.[!.]* "$DATADIR" || exit 1
121121
rmdir "$TMPDATA" || exit 1
122122
123-
sudo -u www-data php occ maintenance:mode --off
123+
ncc maintenance:mode --off
124124
125125
### INCLUDEDATA=no situation
126126
127127
else
128-
echo "no datadir found in backup"
129-
DATADIR="$NCDIR"/data
128+
echo "No datadir found in backup"
129+
130+
[[ -e "$DATADIR" ]] || {
131+
echo "${DATADIR} not found. Resetting to ${NCDIR}/data"
132+
DATADIR="$NCDIR"/data
133+
mkdir -p "${DATADIR}"
134+
touch "${DATADIR}"/.ocdata
135+
chown -R www-data: "${DATADIR}"
136+
sed -i "s|'datadirectory' =>.*|'datadirectory' => '${DATADIR}',|" "$NCDIR"/config/config.php
137+
}
130138
131-
sudo -u www-data php occ maintenance:mode --off
132-
sudo -u www-data php occ files:scan --all
139+
ncc maintenance:mode --off
140+
ncc files:scan --all
133141
134142
# cache needs to be cleaned as of NC 12
135143
NEED_RESTART=1
@@ -140,12 +148,15 @@ sed -i "s|^opcache.file_cache=.*|opcache.file_cache=$DATADIR/.opcache|" /etc/php
140148
141149
# tmp upload dir
142150
mkdir -p "$DATADIR/tmp"
143-
chown www-data:www-data "$DATADIR/tmp"
144-
sudo -u www-data php occ config:system:set tempdirectory --value "$DATADIR/tmp"
151+
chown www-data: "$DATADIR/tmp"
152+
ncc config:system:set tempdirectory --value "$DATADIR/tmp"
145153
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/cli/php.ini
146154
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/fpm/php.ini
147155
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/fpm/php.ini
148156
157+
# logs
158+
ncc config:system:set logfile --value="$DATADIR/nextcloud.log"
159+
149160
# update fail2ban logpath
150161
[[ ! -f /.docker-image ]] && {
151162
sed -i "s|logpath =.*|logpath = $DATADIR/nextcloud.log|" /etc/fail2ban/jail.conf
@@ -156,10 +167,10 @@ sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR/tmp|" /etc/php/${PHP
156167
bash /usr/local/bin/nextcloud-domain.sh
157168
158169
# update the systems data-fingerprint
159-
sudo -u www-data php occ maintenance:data-fingerprint
170+
ncc maintenance:data-fingerprint
160171
161172
# refresh thumbnails
162-
sudo -u www-data php occ files:scan-app-data
173+
ncc files:scan-app-data
163174
164175
# restart PHP if needed
165176
[[ "$NEED_RESTART" == "1" ]] && \

bin/ncp/CONFIG/nc-datadir.sh

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ configure()
2727

2828
## CHECKS
2929
local SRCDIR
30-
SRCDIR=$( cd /var/www/nextcloud; sudo -u www-data php occ config:system:get datadirectory ) || {
30+
SRCDIR=$( cd /var/www/nextcloud; ncc config:system:get datadirectory ) || {
3131
echo -e "Error reading data directory. Is NextCloud running and configured?";
3232
return 1;
3333
}
@@ -65,7 +65,7 @@ configure()
6565

6666
## COPY
6767
cd /var/www/nextcloud
68-
sudo -u www-data php occ maintenance:mode --on
68+
ncc maintenance:mode --on
6969

7070
echo "moving data directory from $SRCDIR to $DATADIR..."
7171

@@ -86,7 +86,7 @@ configure()
8686
# tmp upload dir
8787
mkdir -p "$DATADIR/tmp"
8888
chown www-data:www-data "$DATADIR/tmp"
89-
sudo -u www-data php occ config:system:set tempdirectory --value "$DATADIR/tmp"
89+
ncc config:system:set tempdirectory --value "$DATADIR/tmp"
9090
sed -i "s|^;\?upload_tmp_dir =.*$|uploadtmp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/cli/php.ini
9191
sed -i "s|^;\?upload_tmp_dir =.*$|upload_tmp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/fpm/php.ini
9292
sed -i "s|^;\?sys_temp_dir =.*$|sys_temp_dir = $DATADIR/tmp|" /etc/php/${PHPVER}/fpm/php.ini
@@ -99,9 +99,9 @@ configure()
9999
sed -i "s|logpath =.*nextcloud.log|logpath = $DATADIR/nextcloud.log|" /etc/fail2ban/jail.local
100100

101101
# datadir
102-
sudo -u www-data php occ config:system:set datadirectory --value="$DATADIR"
103-
sudo -u www-data php occ config:system:set logfile --value="$DATADIR/nextcloud.log"
104-
sudo -u www-data php occ maintenance:mode --off
102+
ncc config:system:set datadirectory --value="$DATADIR"
103+
ncc config:system:set logfile --value="$DATADIR/nextcloud.log"
104+
ncc maintenance:mode --off
105105
}
106106

107107
# License

changelog.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11

2-
[v1.38.0](https://github.com/nextcloud/nextcloudpi/commit/d5f50a1) (2021-08-09) upgrade to NC20.0.12
2+
[v1.38.2](https://github.com/nextcloud/nextcloudpi/commit/537925c) (2021-08-16) nc-restore: try to detect old datadir in dataless restoration
33

4-
[v1.37.9](https://github.com/nextcloud/nextcloudpi/commit/b8c1409) (2021-08-09) letsencrypt: ability to disable it and roll back to self-signed certificates
4+
[v1.38.1 ](https://github.com/nextcloud/nextcloudpi/commit/4f29d94) (2021-08-16) nextcloud.conf.sh: Prevent apache config test output to end up in generated template
5+
6+
[v1.38.0](https://github.com/nextcloud/nextcloudpi/commit/6e2dca5) (2021-08-09) upgrade to NC20.0.12
7+
8+
[v1.37.9 ](https://github.com/nextcloud/nextcloudpi/commit/b8c1409) (2021-08-09) letsencrypt: ability to disable it and roll back to self-signed certificates
59

610
[v1.37.8 ](https://github.com/nextcloud/nextcloudpi/commit/5a05b89) (2021-08-08) nextcloud: remove beta option
711

etc/ncp-config.d/nc-backup.cfg

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"id": "nc-backup",
33
"name": "nc-backup",
44
"title": "nc-backup",
5-
"description": "Backup this NC instance to a file. This will always include the current Nextcloud directory and the Database. You can choose to include or exclude NC-data.",
6-
"info": "",
5+
"description": "Backup this NC instance to a file",
6+
"info": "This will always include the current Nextcloud directory and the Database.\nYou can choose to include or exclude NC-data.",
77
"infotitle": "",
88
"params": [
99
{

updates/1.38.0.sh renamed to updates/1.39.0.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ echo "*/5 * * * * php -f /var/www/nextcloud/cron.php" > "${crontab_tmp}"
1717
crontab -u www-data "${crontab_tmp}"
1818
rm "${crontab_tmp}"
1919

20+
## update nc-restore
21+
install_app nc-restore
2022

2123
# docker images only
2224
[[ -f /.docker-image ]] && {

0 commit comments

Comments
 (0)