2. April 2026 20:00 · Linux
Seit Neuestem nutze ich Nextcloud, um meine Dateien zentral zu verwalten und zwischen meinen Geräten synchron zu halten. Gerade weil das für mich eine praktische Cloud-Lösung ist, wollte ich zusätzlich noch eine separate Sicherung haben.
Das automatische Backup direkt beim Anstecken des USB-Sticks empfinde ich dafür als eine richtig gute Lösung: USB-Stick einstecken, Backup startet automatisch, geänderte Dateien werden synchronisiert, Stick wieder abziehen.
Die Lösung dafür habe ich unter Linux mit einer Kombination aus udev, systemd und rsync umgesetzt.
Warum ich das so haben wollte
Nextcloud ist praktisch, weil die Daten auf mehreren Geräten verfügbar sind und man vieles bequem synchron halten kann. Trotzdem ersetzt das für mich kein zusätzliches Backup.
Ich wollte deshalb eine Lösung, die:
- lokal funktioniert
- ohne Cloud-Dienst für das Backup auskommt
- nur geänderte Dateien kopiert
- automatisch startet, sobald der richtige USB-Stick eingesteckt wird
Gerade für meinen Nextcloud-Ordner ist das angenehm, weil ich nicht jedes Mal manuell einen Befehl starten oder erst daran denken muss.
Die Grundidee
Sobald der USB-Stick eingesteckt wird, erkennt udev das Gerät. Darüber wird ein systemd-Service gestartet, der wiederum ein kleines Skript ausführt.
Dieses Skript:
- mountet den Stick
- startet
rsync - kopiert nur die Änderungen
- hängt den Stick danach wieder aus
Das Ziel ist also kein kompliziertes Backup-System mit Oberfläche, sondern ein schlanker Ablauf, der im Alltag einfach funktioniert.
Warum rsync dafür gut passt
Ich mag rsync für solche Aufgaben, weil es unter Linux sehr zuverlässig ist und nicht jedes Mal stumpf alle Dateien neu kopiert.
Dadurch hat die Lösung ein paar klare Vorteile:
- schnelle Synchronisation bei kleinen Änderungen
- wenig unnötige Schreibvorgänge auf dem Stick
- saubere Spiegelung des Quellordners
- mit
--deletebleibt das Ziel konsistent
Gerade wenn sich im Nextcloud-Ordner häufig nur einzelne Dateien ändern, spart das Zeit und Schreiblast.
Technischer Aufbau
Der Ablauf sieht bei mir grob so aus:
- Der USB-Stick bekommt ein Linux-Dateisystem wie ext4.
- Über die UUID wird sichergestellt, dass wirklich nur dieser eine Stick verwendet wird.
- Ein Skript unter
/usr/local/bin/mountet den Stick nach/mnt/usb-backup. - Danach synchronisiert
rsyncden gewünschten Quellordner auf den Stick. - Wenn alles fertig ist, wird der Datenträger wieder ausgehängt.
Zusätzlich schreibe ich den Ablauf in eine Logdatei, damit sich Fehler schnell nachvollziehen lassen.
Anleitung zur Umsetzung
Wer das unter Linux ähnlich umsetzen möchte, kann das mit ein paar einfachen Schritten tun.
1. USB-Stick vorbereiten
Zuerst sollte der Stick mit einem Linux-Dateisystem wie ext4 formatiert werden. Das ist in so einem Setup deutlich zuverlässiger als typische FAT-Varianten.
Mit lsblk lässt sich zuerst prüfen, welches Gerät der Stick ist:
lsblk
Anschließend kann eine Partition angelegt und formatiert werden:
sudo fdisk /dev/sdX
sudo mkfs.ext4 /dev/sdX1
Optional kann man dem Stick noch ein Label geben:
sudo e2label /dev/sdX1 USB_BACKUP
Danach sollte man sich mit blkid die UUID notieren:
blkid
2. Mountpoint anlegen
Damit der Stick sauber eingehängt werden kann, wird ein Mountpoint erstellt:
sudo mkdir -p /mnt/usb-backup
3. Backup-Skript anlegen
Jetzt wird das eigentliche Skript erstellt, das den Stick mountet, rsync ausführt und danach wieder sauber aushängt:
sudo nano /usr/local/bin/usb-nextcloud-backup.sh
#!/bin/bash
set -eu
UUID="deine-usb-stick-uuid"
DEVICE="/dev/disk/by-uuid/$UUID"
MOUNTPOINT="/mnt/usb-backup"
SOURCE="/pfad/zum/quellordner/"
TARGET="$MOUNTPOINT/Backup-Ziel/"
LOGFILE="/var/log/usb-nextcloud-backup.log"
echo "===== $(date '+%Y-%m-%d %H:%M:%S') Backup gestartet =====" >> "$LOGFILE"
sleep 2
if mountpoint -q "$MOUNTPOINT"; then
umount "$MOUNTPOINT" || true
fi
mount "$DEVICE" "$MOUNTPOINT" -o noatime
if findmnt -no OPTIONS "$MOUNTPOINT" | grep -qw ro; then
echo "Fehler: $MOUNTPOINT ist nur lesbar eingehängt." >> "$LOGFILE"
exit 1
fi
mkdir -p "$TARGET"
if rsync -a --delete --info=progress2 "$SOURCE" "$TARGET" >> "$LOGFILE" 2>&1; then
sync
umount "$MOUNTPOINT"
echo "===== $(date '+%Y-%m-%d %H:%M:%S') Backup beendet =====" >> "$LOGFILE"
else
echo "Fehler: rsync ist fehlgeschlagen." >> "$LOGFILE"
exit 1
fi
Danach das Skript ausführbar machen:
sudo chmod +x /usr/local/bin/usb-nextcloud-backup.sh
Wichtig ist hier vor allem, die UUID, den Quellpfad und bei Bedarf auch den Zielordner anzupassen.
4. systemd-Service erstellen
Damit das Skript sauber als Dienst gestartet werden kann, wird ein systemd-Service angelegt:
sudo nano /etc/systemd/system/usb-nextcloud-backup.service
[Unit]
Description=Backup eines Ordners auf USB-Stick
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/usb-nextcloud-backup.sh
Danach:
sudo systemctl daemon-reload
5. udev-Regel anlegen
Damit das Backup automatisch beim Einstecken startet, braucht es noch eine passende udev-Regel:
sudo nano /etc/udev/rules.d/99-usb-nextcloud-backup.rules
ACTION=="add", SUBSYSTEM=="block", ENV{DEVTYPE}=="partition", ENV{ID_FS_UUID}=="deine-usb-stick-uuid", ENV{UDISKS_IGNORE}="1", TAG+="systemd", ENV{SYSTEMD_WANTS}+="usb-nextcloud-backup.service"
Danach die Regeln neu laden:
sudo udevadm control --reload
sudo udevadm trigger
sudo systemctl daemon-reload
6. Manuell testen
Bevor man sich auf den Automatismus verlässt, sollte der Service einmal manuell gestartet werden:
sudo systemctl start usb-nextcloud-backup.service
sudo systemctl status usb-nextcloud-backup.service
Wenn das sauber funktioniert, sollte das Backup danach auch automatisch beim Einstecken des richtigen USB-Sticks anlaufen.
Warum ich die UUID nutze
Gerätenamen wie /dev/sda oder /dev/sdb sind unter Linux keine verlässliche Grundlage, weil sie sich ändern können. Deshalb ist die UUID für so ein Setup deutlich robuster.
So wird das Backup wirklich nur gestartet, wenn genau der vorgesehene Stick angeschlossen wird, und nicht irgendein anderes USB-Gerät.
Für wen das interessant ist
Die Lösung ist vor allem dann praktisch, wenn man:
- einen Linux-Rechner nutzt
- regelmäßig denselben USB-Stick verwendet
- einen bestimmten Ordner sichern möchte
- keine zusätzliche Backup-Software installieren will
Für mich passt das aktuell gut, weil ich Nextcloud nutze, zur Cloud-Lösung aber bewusst noch eine zusätzliche Sicherung haben möchte.
Fazit
Ich mag an diesem Setup vor allem, dass es wenig Overhead hat.
Kein großes Backup-Programm, keine komplizierte Oberfläche, kein manuelles Starten. Stick einstecken reicht aus, und der Abgleich läuft automatisch.
Gerade in Kombination mit meinem Nextcloud-Ordner ist das für mich eine praktische Ergänzung: Die Daten liegen bequem in der Cloud-Lösung, und durch das automatische Backup beim Anstecken habe ich zusätzlich noch eine separate lokale Sicherung.