Inkrementelles Backup mit Rsync
Letzte Änderung am 09.02.2012
Dieses kleine Script setze ich für ein einfaches inkrementelles Backup via rsync ein.
Das Quellverzeichnis /host/foobar/local/data, wird dabei über den Automounter per NFS (readonly) eingebunden.
#!/usr/bin/env sh SRC=/host/foobar/local/data DEST=/local/backup NAME=backup BACKUPS=11 # Exit if no source directory exists if [ ! -d $SRC ]; then exit fi # Create backup directory if neccessary if [ ! -d $DEST ]; then mkdir $DEST fi # Delete oldest backup directory if [ -d $DEST/$NAME.$(($BACKUPS-1)) ]; then rm -rf $DEST/NAME.$(($BACKUPS-1)) fi # Rotate backups i=$(($BACKUPS-2)) while [ "$i" -ge "0" ]; do j=$(($i+1)) if [ -d $DEST/$NAME.$i ]; then mv $DEST/$NAME.$i $DEST/$NAME.$j fi i=$(($i-1)) done # Make next backup rsync -a --delete --link-dest=$DEST/$NAME.1 $SRC $DEST/$NAME.0/
Anmerkung: Das Sicherheitskonzept ist natürlich nicht besonders ausgereift, aber ich halte es für ein Backup in einem internen Netz mit einer begrenzten Anzahl an vertrauenswürdigen Benutzern für ausreichend.
Für externen Zugriff empfiehlt sich ein SSH-Tunnel, für ein ausgefeilteres Sicherheitskonzept der rsync-Daemon einschließlich diverser Zugriffs- und Firewall-Regeln. Insbesondere durch den rsync-Daemon lassen sich Rechte, Eigentümer und Symlinks besser managen. Außerdem verbessert sich die Performance.
Kommentare
Kai (nicht überprüft)
7. Mai 2021 - 17:50
Permanenter Link
Genau das, was ich gesucht
Genau das, was ich gesucht habe. Sehr hilfreich, vielen Dank!