]>
git.p6c8.net - nextcloud-backup-restore.git/blob - setup.sh
4 # Bash script an easy setup of NextcloudBackup.sh and NextcloudRestore.sh
9 # - call the setup.sh script
10 # - Enter the required information
11 # - You NextcloudBackup.sh and NextcloudRestore.sh scripts will be tailored to match you installation.
13 # The script is based on an installation of Nextcloud using nginx and MariaDB, see https://decatec.de/home-server/nextcloud-auf-ubuntu-server-18-04-lts-mit-nginx-mariadb-php-lets-encrypt-redis-und-fail2ban/
18 # The setup.sh script automated the configuration for the backup/restore scripts.
19 # However, you should always check the backup/restore scripts BEFORE executing these!
22 # Make sure the script exits when any command fails
26 # Pre defined variables
28 backupMainDir
= '/media/hdd/nextcloud_backup'
29 nextcloudFileDir
= '/var/www/nextcloud'
30 webserverUser
= 'www-data'
31 webserverServiceName
= 'nginx'
38 echo "Enter the directory to which the backups should be saved."
39 echo "Default: ${backupMainDir} "
41 read -p "Enter a directory or press ENTER if the backup directory should be ${backupMainDir} : " BACKUPMAINDIR
43 [ -z " $BACKUPMAINDIR " ] || backupMainDir
= $BACKUPMAINDIR
46 echo "Enter the path to the Nextcloud file directory."
47 echo "Usually: ${nextcloudFileDir} "
49 read -p "Enter a directory or press ENTER if the file directory is ${nextcloudFileDir} : " NEXTCLOUDFILEDIRECTORY
51 [ -z " $NEXTCLOUDFILEDIRECTORY " ] || nextcloudFileDir
= $NEXTCLOUDFILEDIRECTORY
54 echo "Enter the webserver user."
55 echo "Usually: ${webserverUser} "
57 read -p "Enter an new user or press ENTER if the webserver user is ${webserverUser} : " WEBSERVERUSER
59 [ -z " $WEBSERVERUSER " ] || webserverUser
= $WEBSERVERUSER
62 echo "Enter the webserver service name."
63 echo "Usually: nginx or apache2"
65 read -p "Enter an new webserver service name or press ENTER if the webserver service name is ${webserverServiceName} : " WEBSERVERSERVICENAME
67 [ -z " $WEBSERVERSERVICENAME " ] || webserverServiceName
= $WEBSERVERSERVICENAME
70 echo "Backup directory: ${backupMainDir} "
71 echo "Nextcloud file directory: ${nextcloudFileDir} "
72 echo "Webserver user: ${webserverUser} "
73 echo "Webserver service name: ${webserverServiceName} "
75 read -p "Is the information correct? [y/N] " CORRECTINFO
77 if [ " $CORRECTINFO " != 'y' ] ; then
79 echo "No file has been altered."
84 sudo
-u " ${webserverUser} " php
${nextcloudFileDir} / occ config
: system
: get
" $1 "
87 # Make test call to OCC
91 echo "Error calling OCC: Please check if the information provided was correct."
93 echo "No file has been altered."
98 # Read data from OCC and write to backup/restore scripts.
103 echo "Modifying NextcloudBackup.sh and NextcloudRestore.sh to match your installation..."
107 sed -i "s@^ \t backupMainDir='/media/hdd/nextcloud_backup'@ \t backupMainDir=' $backupMainDir '@" .
/ NextcloudBackup.sh
108 sed -i "s@^ \t backupMainDir='/media/hdd/nextcloud_backup'@ \t backupMainDir=' $backupMainDir '@" .
/ NextcloudRestore.sh
111 sed -i "s@^nextcloudFileDir.*@nextcloudFileDir=' $nextcloudFileDir '@" .
/ NextcloudBackup.sh
112 sed -i "s@^nextcloudFileDir.*@nextcloudFileDir=' $nextcloudFileDir '@" .
/ NextcloudRestore.sh
115 nextcloudDataDir
= $
( occ_get datadirectory
)
117 sed -i "s@^nextcloudDataDir=.*@nextcloudDataDir=' $nextcloudDataDir '@" .
/ NextcloudBackup.sh
118 sed -i "s@^nextcloudDataDir=.*@nextcloudDataDir=' $nextcloudDataDir '@" .
/ NextcloudRestore.sh
120 # Webserver service name
121 sed -i "s/^webserverServiceName.*/webserverServiceName=' $webserverServiceName '/" .
/ NextcloudBackup.sh
122 sed -i "s/^webserverServiceName.*/webserverServiceName=' $webserverServiceName '/" .
/ NextcloudRestore.sh
125 sed -i "s/^webserverUser.*/webserverUser=' $webserverUser '/" .
/ NextcloudBackup.sh
126 sed -i "s/^webserverUser.*/webserverUser=' $webserverUser '/" .
/ NextcloudRestore.sh
129 databaseSystem
= $
( occ_get dbtype
)
131 # PostgreSQL is identified as pgsql
132 if [ " ${databaseSystem,,} " = "pgsql" ]; then
133 databaseSystem
= 'postgresql' ;
136 sed -i "s/^databaseSystem.*/databaseSystem=' $databaseSystem '/" .
/ NextcloudBackup.sh
137 sed -i "s/^databaseSystem.*/databaseSystem=' $databaseSystem '/" .
/ NextcloudRestore.sh
140 nextcloudDatabase
= $
( occ_get dbname
)
142 sed -i "s/^nextcloudDatabase.*/nextcloudDatabase=' $nextcloudDatabase '/" .
/ NextcloudBackup.sh
143 sed -i "s/^nextcloudDatabase.*/nextcloudDatabase=' $nextcloudDatabase '/" .
/ NextcloudRestore.sh
146 dbUser
= $
( occ_get dbuser
)
148 sed -i "s/^dbUser.*/dbUser=' $dbUser '/" .
/ NextcloudBackup.sh
149 sed -i "s/^dbUser.*/dbUser=' $dbUser '/" .
/ NextcloudRestore.sh
152 dbPassword
= $
( occ_get dbpassword
)
154 sed -i "s/^dbPassword.*/dbPassword=' $dbPassword '/" .
/ NextcloudBackup.sh
155 sed -i "s/^dbPassword.*/dbPassword=' $dbPassword '/" .
/ NextcloudRestore.sh
161 echo "IMPORTANT: Please check NextcloudBackup.sh and NextcloudRestore.sh if all variables were set correctly BEFORE running these scripts!"
163 echo "When using pigz compression, you also have to install pigz (e.g. for Debian/Ubuntu: apt install pigz)"
patrick-canterino.de