lennartalff.net/content/posts/nextcloud-backup-script.md

1.2 KiB

title date categories tags series
Backup Script for my Nextcloud 2022-04-13
Software
software
server
Nextcloud Backup

Backup creation via interactive script

The script I use to create the Nextcloud backup is the following:

#!/usr/bin/bash
set -e

DATE_STR=`date +"%Y-%m-%d"`
BACKUP_DIR="/backup/nextcloud-backup/$DATE_STR"

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on

mkdir $BACKUP_DIR
echo "Enter mysql_nextcloud password."
mysqldump --single-transaction -u nextcloud -p nextcloud > "$BACKUP_DIR/nextcloud-sqlbkp".bak
rsync -Aax --info=progress2 /var/www/nextcloud/ "$BACKUP_DIR/nextcloud-dirbkp"

sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off

As one can clearly see, it is an interactive script that I invoke when updating my cloud. It performs the following steps:

  • Enabling maintenance mode
  • Backing up the database
  • Backing up the Nextcloud data
  • Disabling maintenance mode

The backups are stored in directories named by their date of creation.

What could be done better?

  • Incremental backups to save disk space
  • Make the backup completely automated and perform them on a regular time base
  • Store the backups not only on a separate drive but on a different computer