Die effizienteste Backup Lösung für NEXTCLOUD – Datensicherung mit BorgBackup
Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Ein ordentliches Backup ist für eine jeden Nextcloud User ein Muss. Mit die effizienteste Backup Lösung für eine Nextcloud ist aktuell die Anwendung BorgBackup, welche verschlüsselte, komprimierte und inkrementelle Backups bietet.
» Relevante Videos:
Nextcloud Backup Skript V1: https://www.youtube.com/watch?v=_uB9pdnn-gs
Nextcloud Backup App: https://www.youtube.com/watch?v=oB10NfuTZCs
Nextcloud auf Linux Server installieren: https://youtu.be/8Hw7M7tcI9o
Nextcloud Playlist: https://www.youtube.com/watch?v=mlRAaZT53Rg&list=PLLg1WgOBYXOtQOwYQjJc1GbuYz-wJgmtN
Im Video verwendete Befehle:
##### Nextcloud Borg Backup ##### ## mount NAS and create directories ## mkdir -p /backup/daten /backup/temp /restore ## install borg backup ## apt install -y borgbackup ## create now Backup Repository ## borg init -e repokey-blake2 /backup/daten/ ## adjust backup skript und paste ## nano /root/backup.sh ## make executable ## chmod +x /root/backup.sh ## automate skript at 03:00 ## crontab -e 0 3 * * * /root/backup.sh > /dev/null 2>&1 ## list created backups ## borg list /backup/daten ## mount backup to browse it ## borg mount /backup/daten::<date> /restore/ example: borg mount /backup/daten::20200602_084033 /restore/ ## unmount the backup ## borg umount /restore/
Skript:
#!/bin/bash ################################## ### Beispieldaten: ### logDirectory="/backup_logs/" ### backupDiscMount="/backup/" ### localBackupDir="/backup/temp" ################################## export BORG_PASSPHRASE='<borg-password>' export BORG_UNKNOWN_UNENCRYPTED_REPO_ACCESS_IS_OK=yes export BORG_RELOCATED_REPO_ACCESS_IS_OK=yes startTime=$(date +%s) currentDate=$(date --date @"$startTime" +"%Y%m%d_%H%M%S") currentDateReadable=$(date --date @"$startTime" +"%d.%m.%Y - %H:%M:%S") logDirectory="/var/log/" logFile="${logDirectory}/${currentDate}.log" backupDiscMount="/backup/daten/" localBackupDir="/backup/temp" borgRepository="${backupDiscMount}/" borgBackupDirs="/home/data/ /var/www/nextcloud/ $localBackupDir/" nextcloudFileDir='/var/www/nextcloud' webserverServiceName='apache2' webserverUser='www-data' nextcloudDatabase='nextcloud' dbUser='root' dbPassword='<db-password>' fileNameBackupDb='nextcloud-db.sql' if [ ! -d "${logDirectory}" ] then mkdir -p "${logDirectory}" fi errorecho() { cat <<< "$@" 1>&2; } exec > >(tee -i "${logFile}") exec 2>&1 if [ "$(id -u)" != "0" ] then errorecho "ERROR: This script has to be run as root!" exit 1 fi if [ ! -d "${localBackupDir}" ] then errorecho "ERROR: The local backup directory ${localBackupDir} does not exist!" exit 1 fi echo -e "\n###### Start des Backups: ${currentDateReadable} ######\n" echo -e "Daten werden zusammengestellt" dpkg --get-selections > "${localBackupDir}/software.list" sudo -u "${webserverUser}" php ${nextcloudFileDir}/occ maintenance:mode --on echo "apache2 wird gestoppt" systemctl stop "${webserverServiceName}" echo "Datenbanksicherung wird erstellt" mysqldump --single-transaction --routines -h localhost -u "${dbUser}" -p"${dbPassword}" "${nextcloudDatabase}" > "${localBackupDir}/${fileNameBackupDb}" echo -e "\nBackup mit borgbackup" borg create --stats \ $borgRepository::"${currentDate}" \ $localBackupDir \ $borgBackupDirs echo echo "webserver wird gestartet" systemctl start "${webserverServiceName}" sudo -u "${webserverUser}" php ${nextcloudFileDir}/occ maintenance:mode --off rm "${localBackupDir}"/software.list rm -r "${localBackupDir}/${fileNameBackupDb}" borg prune --progress --stats $borgRepository --keep-within=7d --keep-weekly=4 --keep-monthly=6 endTime=$(date +%s) endDateReadable=$(date --date @"$endTime" +"%d.%m.%Y - %H:%M:%S") duration=$((endTime-startTime)) durationSec=$((duration % 60)) durationMin=$(((duration / 60) % 60)) durationHour=$((duration / 3600)) durationReadable=$(printf "%02d Stunden %02d Minuten %02d Sekunden" $durationHour $durationMin $durationSec) echo -e "\n###### Ende des Backups: ${endDateReadable} (${durationReadable}) ######\n" echo -e "Plattenbelegung:\n" df -h ${backupDiscMount}
» Quellen & Credits:
https://www.c-rieger.de/backup-mit-de-duplizierung/
https://www.reddit.com/r/HomeServer/comments/kl2du2/offsite_nextcloud_backup_using_borgduplicatirsync/
apfelcast Support
Du benötigst Unterstützung bei deinem Projekt oder hast Fragen zur Umsetzung?
Dann melde ich gern bei uns!
[button link=“https://apfelcast.com/kontakt“ type=“big“ class=“ custom-button“] Kontaktieren[/button]
apfelcast Support
Du benötigst Unterstützung bei deinem Projekt oder hast Fragen zur Umsetzung?
Dann melde ich gern bei uns!