Diese Version (2025/03/29 12:23) wurde bestätigt durch Daniel.Die zuvor bestätigte Version (2025/03/29 11:56) ist verfügbar.Diff

Server: Backup

There are many ways to backup your server. As NC-AIO already has Borg, you may use Borg for a complete Backup of your system. The docs can be found here: https://borgbackup.readthedocs.io/en/stable/

You need to perform everything as root. So login as root somehow (maybe use sudo -i)

First, create the Directories:

  • /backup (should already be there by NC-AIO)
  • /backup/borg/root

Please refer to the Documentations of Borg found at https://borgbackup.readthedocs.io/en/stable/usage/init.html to create a Repository. You can also use some graphical tool like vorta for this - i did, while it will help to setup borg.

For me, i chose the location /backup/borg/root as repository. I included the key, so that i only needed a new passphrase to access the repository:

borg init --encryption repokey-blake2 /backup/borg/root

Create the Directory /root/backup and add a new file named borg_backup_root.sh there with the contents:

#!/bin/bash
# Make Borg Backup of Root and all what is needed for Base-System
cd /root/backup

#Vars
export BORG_PASSPHRASE='yoursecretpassphrase'
ARCHIVNAME="backup-$(date '+%Y%m%d_%H%M%S')"
REPONAME="/backup/borg/root"

echo "Starting Backup of Root with Borg"
#This will create a btrfs readonly snapshot of root in the directory /root_snapshot
/sbin/btrfs subvolume snapshot -r / /root_snapshot
echo "Creating Archive ${ARCHIVNAME} in ${REPONAME}..."
/usr/bin/borg create --warning --show-version --list --filter=AM --show-rc -s -C lz4 --exclude-from /root/backup/excludelist ${REPONAME}::${ARCHIVNAME} /root_snapshot /boot/grub2 /i386-pc /boot/grub2/x86_64-efi /opt /root /srv /tmp /usr/local /var /boot/efi /home
RETURNCODE=$?
/sbin/btrfs subvolume delete /root_snapshot
if [ ${RETURNCODE} -ne 0 ]; then
 echo "Some ERROR with Borg. Stopping execution."
 exit ${RETURNCODE}
fi

echo "Pruning Archives"
/usr/bin/borg prune --show-rc --warning --progress --keep-hourly 2 --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --keep-yearly 2 -a pcserver2023-* --keep-within 10H ${REPONAME}

echo "Checking this Archive (${ARCHIVNAME})"
/usr/bin/borg check --show-rc ${REPONAME}::${ARCHIVNAME}
echo "Done Backup root"

Second, add n new File named excludelist and put in e.g:

#This list was created by Vorta as root (manually copying preview of exlcudes)
#
# custom added rules
/home/docker/nextcloud_data/
/home/docker/.local/share/docker/
/var/lib/mysql/

# flatpak-builder
fm:*.flatpak-builder

# recycle-bin-trash
fm:*/.local/share/Trash/*
fm:*/.Trash/*
fm:*/.Trash-*/*

# chromium-cache
fm:*/.config/chromium/*/Application Cache
fm:*/.config/chromium/*/History Index *
fm:*/.config/chromium/*/Local Storage
fm:*/.config/chromium/*/Service Worker/CacheStorage
fm:*/.config/chromium/*/Session Storage
fm:*/.config/chromium/GrShaderCache
fm:*/.config/chromium/GraphiteDawnCache
fm:*/.config/chromium/ShaderCache
fm:*/.var/app/org.chromium.Chromium/cache
fm:*/.var/app/org.chromium.Chromium/config/chromium/*/Application Cache
fm:*/.var/app/org.chromium.Chromium/config/chromium/*/History Index *
fm:*/.var/app/org.chromium.Chromium/config/chromium/*/Local Storage
fm:*/.var/app/org.chromium.Chromium/config/chromium/*/Service Worker/CacheStorage
fm:*/.var/app/org.chromium.Chromium/config/chromium/*/Session Storage
fm:*/.var/app/org.chromium.Chromium/config/chromium/GrShaderCache
fm:*/.var/app/org.chromium.Chromium/config/chromium/GraphiteDawnCache
fm:*/.var/app/org.chromium.Chromium/config/chromium/ShaderCache
fm:*/snap/chromium/*/.config/chromium/*/Service Worker/CacheStorage
fm:*/snap/chromium/*/.local/share
fm:*/snap/chromium/common/.cache

# google-chrome-cache
fm:*/.cache/google-chrome
fm:*/.cache/google-chrome-unstable
fm:*/.config/google-chrome-unstable/*/Application Cache
fm:*/.config/google-chrome-unstable/*/History Index *
fm:*/.config/google-chrome-unstable/*/Local Storage
fm:*/.config/google-chrome-unstable/*/Service Worker/CacheStorage
fm:*/.config/google-chrome-unstable/*/Session Storage
fm:*/.config/google-chrome-unstable/GrShaderCache
fm:*/.config/google-chrome-unstable/GraphiteDawnCache
fm:*/.config/google-chrome-unstable/ShaderCache
fm:*/.config/google-chrome/*/Application Cache
fm:*/.config/google-chrome/*/History Index *
fm:*/.config/google-chrome/*/Local Storage
fm:*/.config/google-chrome/*/Service Worker/CacheStorage
fm:*/.config/google-chrome/*/Session Storage
fm:*/.config/google-chrome/GrShaderCache
fm:*/.config/google-chrome/GraphiteDawnCache
fm:*/.config/google-chrome/ShaderCache
fm:*/.var/app/com.google.Chrome/cache
fm:*/.var/app/com.google.Chrome/config/google-chrome/*/Feature Engagement Tracker
fm:*/.var/app/com.google.Chrome/config/google-chrome/*/Local Storage
fm:*/.var/app/com.google.Chrome/config/google-chrome/*/Service Worker/CacheStorage
fm:*/.var/app/com.google.Chrome/config/google-chrome/*/Session Storage
fm:*/.var/app/com.google.Chrome/config/google-chrome/GrShaderCache
fm:*/.var/app/com.google.Chrome/config/google-chrome/GraphiteDawnCache
fm:*/.var/app/com.google.Chrome/config/google-chrome/Safe Browsing
fm:*/.var/app/com.google.Chrome/config/google-chrome/ShaderCache
fm:*/.var/app/com.google.ChromeDev/cache
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/*/Feature Engagement Tracker
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/*/Local Storage
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/*/Service Worker/CacheStorage
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/*/Session Storage
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/GrShaderCache
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/GraphiteDawnCache
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/Safe Browsing
fm:*/.var/app/com.google.ChromeDev/config/google-chrome-unstable/ShaderCache

# firefox-cache
fm:*/.cache/mozilla/firefox
fm:*/.mozilla/firefox/*/.parentlock
fm:*/.mozilla/firefox/*/Cache
fm:*/.mozilla/firefox/*/XPC.mfasl
fm:*/.mozilla/firefox/*/XUL.mfasl
fm:*/.mozilla/firefox/*/blocklist.xml
fm:*/.mozilla/firefox/*/compreg.dat
fm:*/.mozilla/firefox/*/extensions.cache
fm:*/.mozilla/firefox/*/extensions.ini
fm:*/.mozilla/firefox/*/extensions.rdf
fm:*/.mozilla/firefox/*/extensions.sqlite
fm:*/.mozilla/firefox/*/extensions.sqlite-journal
fm:*/.mozilla/firefox/*/minidumps
fm:*/.mozilla/firefox/*/pluginreg.dat
fm:*/.mozilla/firefox/*/urlclassifier3.sqlite
fm:*/.mozilla/firefox/*/xpti.dat
fm:*/snap/firefox/common/.cache
fm:*/snap/firefox/common/.mozilla/firefox/*/.parentlock
fm:*/snap/firefox/common/.mozilla/firefox/*/XPC.mfasl
fm:*/snap/firefox/common/.mozilla/firefox/*/XUL.mfasl
fm:*/snap/firefox/common/.mozilla/firefox/*/blocklist.xml
fm:*/snap/firefox/common/.mozilla/firefox/*/compreg.dat
fm:*/snap/firefox/common/.mozilla/firefox/*/extensions.cache
fm:*/snap/firefox/common/.mozilla/firefox/*/extensions.ini
fm:*/snap/firefox/common/.mozilla/firefox/*/extensions.rdf
fm:*/snap/firefox/common/.mozilla/firefox/*/extensions.sqlite
fm:*/snap/firefox/common/.mozilla/firefox/*/extensions.sqlite-journal
fm:*/snap/firefox/common/.mozilla/firefox/*/minidumps
fm:*/snap/firefox/common/.mozilla/firefox/*/pluginreg.dat
fm:*/snap/firefox/common/.mozilla/firefox/*/urlclassifier3.sqlite
fm:*/snap/firefox/common/.mozilla/firefox/*/xpti.dat
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/.parentlock
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/XPC.mfasl
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/XUL.mfasl
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/blocklist.xml
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/compreg.dat
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/extensions.cache
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/extensions.ini
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/extensions.rdf
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/extensions.sqlite
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/extensions.sqlite-journal
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/minidumps
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/pluginreg.dat
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/urlclassifier3.sqlite
fm:*/.var/app/org.mozilla.firefox/.mozilla/firefox/*/xpti.dat
fm:*/.var/app/org.mozilla.firefox/cache

To setup a cron, add a new File named borg_backup_root_cron.sh with content:

#!/bin/bash
# Execute Borg Backup with cron
cd /root/backup
./borg_backup_root.sh> $0.log 2>&1
cat $0.log

And insert this script to crontab with crontab -e:

0 1 * * * /root/backup/borg_backup_root_cron.sh

Thats it, your Backup will perform on a daily base. You could also do more backups if you like.

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
  • content/serverbasics/server-backup.txt
  • Zuletzt geändert: 2025/03/29 12:22
  • von Daniel