From: DecaTec Date: Tue, 23 Oct 2018 18:43:53 +0000 (+0200) Subject: #11: Backup can be cancelled by CTRL+C; prompt for maintenance mode X-Git-Tag: v1.0.0~16 X-Git-Url: https://git.p6c8.net/nextcloud-backup-restore.git/commitdiff_plain/802fec8fdc49996073c931007173919479d4d6b0?ds=inline;hp=--cc #11: Backup can be cancelled by CTRL+C; prompt for maintenance mode --- 802fec8fdc49996073c931007173919479d4d6b0 diff --git a/NextcloudBackup.sh b/NextcloudBackup.sh index 6cb6b0e..f1e591b 100644 --- a/NextcloudBackup.sh +++ b/NextcloudBackup.sh @@ -3,7 +3,7 @@ # # Bash script for creating backups of Nextcloud. # Usage: ./NextcloudBackup.sh -# +# # 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/ # @@ -46,6 +46,32 @@ fileNameBackupDb="nextcloud-db.sql" # Function for error messages errorecho() { cat <<< "$@" 1>&2; } +function DisableMaintenanceMode() { + echo "Switching off maintenance mode..." + cd "${nextcloudFileDir}" + sudo -u "${webserverUser}" php occ maintenance:mode --off + cd ~ + echo "Done" + echo +} + +# Capture CTRL+C +trap CtrlC INT + +function CtrlC() { + read -p "Backup cancelled. Keep maintenance mode? [y/n] " -n 1 -r + echo + + if ! [[ $REPLY =~ ^[Yy]$ ]] + then + DisableMaintenanceMode + else + echo "Maintenance mode still enabled." + fi + + exit 1 +} + # # Check for root # @@ -116,29 +142,24 @@ echo # # Disable maintenance mode # -echo "Switching off maintenance mode..." -cd "${nextcloudFileDir}" -sudo -u "${webserverUser}" php occ maintenance:mode --off -cd ~ -echo "Done" -echo +DisableMaintenanceMode() # # Delete old backups # if (( ${maxNrOfBackups} != 0 )) -then +then nrOfBackups=$(ls -l ${backupMainDir} | grep -c ^d) - + if (( ${nrOfBackups} > ${maxNrOfBackups} )) then echo "Removing old backups..." ls -t ${backupMainDir} | tail -$(( nrOfBackups - maxNrOfBackups )) | while read dirToRemove; do - echo "${dirToRemove}" - rm -r ${backupMainDir}/${dirToRemove} - echo "Done" - echo - done + echo "${dirToRemove}" + rm -r ${backupMainDir}/${dirToRemove} + echo "Done" + echo + done fi fi