#!/bin/bash # Nextcloud backups # # Copyleft 2017 by Ignacio Nunez Hernanz # GPL licensed (see end of file) * Use at your own risk! # # Usage: # # ./installer.sh nc-backup-auto.sh () # # See installer.sh instructions for details # # More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/ # ACTIVE_=no DESTDIR_=/media/USBdrive INCLUDEDATA_=no BACKUPDAYS_=7 BACKUPLIMIT_=4 DESCRIPTION="Periodic backups" BASEDIR=/var/www install() { cat > /etc/systemd/system/nc-backup.service < /usr/local/bin/ncp-backup < \$DBBACKUP [[ "$INCLUDEDATA_" == "yes" ]] && echo -e "backup datadir... " echo -e "backup files..." mkdir -p $DESTDIR_ tar -cf \$DESTFILE \$DBBACKUP nextcloud/ --exclude 'nextcloud/data/*/files/*' && \ echo -e "backup \$DESTFILE generated" || \ echo -e "error generating backup" rm \$DBBACKUP [[ "$INCLUDEDATA_" == "yes" ]] && { tar -rf \$DESTFILE -C \$DATADIR/.. \$( basename \$DATADIR ) || \ echo -e "error generating data backup" } # delete older backups [[ $BACKUPLIMIT_ != 0 ]] && { NUMBKPS=\$( ls $DESTDIR_/nextcloud-bkp_* | wc -l ) [[ \$NUMBKPS > $BACKUPLIMIT_ ]] && \ ls -t $DESTDIR_/nextcloud-bkp_* | tail -\$(( NUMBKPS - $BACKUPLIMIT_ )) | while read f; do echo -e "clean up old backup \$f" rm \$f done } cd $BASEDIR/nextcloud sudo -u www-data php occ maintenance:mode --off EOF chmod +x /usr/local/bin/ncp-backup cat > /etc/systemd/system/nc-backup.timer <