From 3ba26cfe9a8d11e874cd2a9c2e042fc9bc4dd2aa Mon Sep 17 00:00:00 2001 From: DecaTec Date: Wed, 30 Dec 2020 15:47:21 +0100 Subject: [PATCH] Option for compression --- NextcloudBackup.sh | 51 ++++++++++++++++++++++++++++++++++++++------- NextcloudRestore.sh | 44 +++++++++++++++++++++++++++++++------- setup.sh | 2 +- 3 files changed, 81 insertions(+), 16 deletions(-) diff --git a/NextcloudBackup.sh b/NextcloudBackup.sh index 47abd13..0b03af1 100644 --- a/NextcloudBackup.sh +++ b/NextcloudBackup.sh @@ -3,7 +3,7 @@ # # Bash script for creating backups of Nextcloud. # -# Version 2.0.0 +# Version 2.1.0 # # Usage: # - With backup directory specified in the script: ./NextcloudBackup.sh @@ -31,6 +31,12 @@ currentDate=$(date +"%Y%m%d_%H%M%S") # The actual directory of the current backup - this is a subdirectory of the main directory above with a timestamp backupdir="${backupMainDir}/${currentDate}/" +# TODO: Use compression for Matrix Synapse installation/lib dir +# When this is the only script for backups, it's recommend to enable compression. +# If the output of this script is used in another (compressing) backup (e.g. borg backup), +# you should probably disable compression here and only enable compression of your main backup script. +useCompression=true + # TODO: The directory of your Nextcloud installation (this is a directory under your web root) nextcloudFileDir='/var/www/nextcloud' @@ -69,11 +75,20 @@ ignoreUpdaterBackups=false # File names for backup files # If you prefer other file names, you'll also have to change the NextcloudRestore.sh script. -fileNameBackupFileDir='nextcloud-filedir.tar.gz' -fileNameBackupDataDir='nextcloud-datadir.tar.gz' +fileNameBackupFileDir='nextcloud-filedir.tar' +fileNameBackupDataDir='nextcloud-datadir.tar' + +if [ "$useCompression" = true ] ; then + fileNameBackupFileDir='nextcloud-filedir.tar.gz' + fileNameBackupDataDir='nextcloud-datadir.tar.gz' +fi # TODO: Uncomment if you use local external storage -#fileNameBackupExternalDataDir='nextcloud-external-datadir.tar.gz' +#fileNameBackupExternalDataDir='nextcloud-external-datadir.tar' +# +#if [ "$useCompression" = true ] ; then +# fileNameBackupExternalDataDir='nextcloud-external-datadir.tar.gz' +#fi fileNameBackupDb='nextcloud-db.sql' @@ -154,7 +169,13 @@ echo # Backup file directory # echo "Creating backup of Nextcloud file directory..." -tar -cpzf "${backupdir}/${fileNameBackupFileDir}" -C "${nextcloudFileDir}" . + +if [ "$useCompression" = true ] ; then + tar -cpzf "${backupdir}/${fileNameBackupFileDir}" -C "${nextcloudFileDir}" . +else + tar -cpf "${backupdir}/${fileNameBackupFileDir}" -C "${nextcloudFileDir}" . +fi + echo "Done" echo @@ -164,10 +185,19 @@ echo echo "Creating backup of Nextcloud data directory..." if [ "$ignoreUpdaterBackups" = true ] ; then - echo "Ignoring updater backup directory" - tar -cpzf "${backupdir}/${fileNameBackupDataDir}" --exclude="updater-*/backups/*" -C "${nextcloudDataDir}" . + echo "Ignoring updater backup directory" + + if [ "$useCompression" = true ] ; then + tar -cpzf "${backupdir}/${fileNameBackupDataDir}" --exclude="updater-*/backups/*" -C "${nextcloudDataDir}" . + else + tar -cpf "${backupdir}/${fileNameBackupDataDir}" --exclude="updater-*/backups/*" -C "${nextcloudDataDir}" . + fi else + if [ "$useCompression" = true ] ; then tar -cpzf "${backupdir}/${fileNameBackupDataDir}" -C "${nextcloudDataDir}" . + else + tar -cpf "${backupdir}/${fileNameBackupDataDir}" -C "${nextcloudDataDir}" . + fi fi echo "Done" @@ -176,7 +206,12 @@ echo # Backup local external storage. # Uncomment if you use local external storage #echo "Creating backup of Nextcloud local external storage directory..." -#tar -cpzf "${backupdir}/${fileNameBackupExternalDataDir}" -C "${nextcloudLocalExternalDataDir}" . +#if [ "$useCompression" = true ] ; then +# tar -cpzf "${backupdir}/${fileNameBackupExternalDataDir}" -C "${nextcloudLocalExternalDataDir}" . +#else +# tar -cpf "${backupdir}/${fileNameBackupExternalDataDir}" -C "${nextcloudLocalExternalDataDir}" . +#fi + #echo "Done" #echo diff --git a/NextcloudRestore.sh b/NextcloudRestore.sh index 90ec545..51581be 100644 --- a/NextcloudRestore.sh +++ b/NextcloudRestore.sh @@ -3,7 +3,7 @@ # # Bash script for restoring backups of Nextcloud. # -# Version 2.0.0 +# Version 2.1.0 # # Usage: # - With backup directory specified in the script: ./NextcloudRestore.sh (e.g. ./NextcloudRestore.sh 20170910_132703) @@ -29,6 +29,9 @@ fi echo "Backup directory: $backupMainDir" +# TODO: Set this to true, if the backup was created with compression enabled, otherwiese false. +useCompression=true + currentRestoreDir="${backupMainDir}/${restore}" # TODO: The directory of your Nextcloud installation (this is a directory under your web root) @@ -62,11 +65,20 @@ dbPassword='mYpAsSw0rd' # File names for backup files # If you prefer other file names, you'll also have to change the NextcloudBackup.sh script. -fileNameBackupFileDir='nextcloud-filedir.tar.gz' -fileNameBackupDataDir='nextcloud-datadir.tar.gz' +fileNameBackupFileDir='nextcloud-filedir.tar' +fileNameBackupDataDir='nextcloud-datadir.tar' + +if [ "$useCompression" = true ] ; then + fileNameBackupFileDir='nextcloud-filedir.tar.gz' + fileNameBackupDataDir='nextcloud-datadir.tar.gz' +fi # TODO: Uncomment if you use local external storage -#fileNameBackupExternalDataDir='nextcloud-external-datadir.tar.gz' +#fileNameBackupExternalDataDir='nextcloud-external-datadir.tar' +# +#if [ "$useCompression" = true ] ; then +# fileNameBackupExternalDataDir='nextcloud-external-datadir.tar.gz' +#fi fileNameBackupDb='nextcloud-db.sql' @@ -168,20 +180,38 @@ echo # File directory echo "Restoring Nextcloud file directory..." -tar -xmpzf "${currentRestoreDir}/${fileNameBackupFileDir}" -C "${nextcloudFileDir}" + +if [ "$useCompression" = true ] ; then + tar -xmpzf "${currentRestoreDir}/${fileNameBackupFileDir}" -C "${nextcloudFileDir}" +else + tar -xmpf "${currentRestoreDir}/${fileNameBackupFileDir}" -C "${nextcloudFileDir}" +fi + echo "Done" echo # Data directory echo "Restoring Nextcloud data directory..." -tar -xmpzf "${currentRestoreDir}/${fileNameBackupDataDir}" -C "${nextcloudDataDir}" + +if [ "$useCompression" = true ] ; then + tar -xmpzf "${currentRestoreDir}/${fileNameBackupDataDir}" -C "${nextcloudDataDir}" +else + tar -xmpf "${currentRestoreDir}/${fileNameBackupDataDir}" -C "${nextcloudDataDir}" +fi + echo "Done" echo # Local external storage # TODO: Uncomment if you use local external storage #echo "Restoring Nextcloud data directory..." -#tar -xmpzf "${currentRestoreDir}/${fileNameBackupExternalDataDir}" -C "${nextcloudLocalExternalDataDir}" +# +#if [ "$useCompression" = true ] ; then +# tar -xmpzf "${currentRestoreDir}/${fileNameBackupExternalDataDir}" -C "${nextcloudLocalExternalDataDir}" +#else +# tar -xmpf "${currentRestoreDir}/${fileNameBackupExternalDataDir}" -C "${nextcloudLocalExternalDataDir}" +#fi +# #echo "Done" #echo diff --git a/setup.sh b/setup.sh index 6b1dfbd..f5f4d1e 100755 --- a/setup.sh +++ b/setup.sh @@ -3,7 +3,7 @@ # # Bash script an easy setup of NextcloudBackup.sh and NextcloudRestore.sh # -# Version 2.0.0 +# Version 2.1.0 # # Usage: # - call the setup.sh script -- 2.34.1