#!/bin/bash # #versioned-backup-1.0.sh # #Backup im Netz mit Hilfe von rsync # NOW="$(date '+%Y%m%d-%H%M')" MYNAME="$(hostname)" LDIR="/home" LDIR1="/etc" BNAME="pve.srv.lcd" BIP="192.168.1.201" BUSER="root" BDIR="/backup" # Verbindung testen /bin/ping -c 1 "$BIP" >/dev/null 2>&1 if [ $? -ne 0 ]; then echo "BACKUP-Server ist leider nicht erreichbar." exit 2 fi # Teste, ob das richtige BACKUP-Rechner ist BNAMETEST=$(ssh "$BUSER@$BIP" hostname) if [ "$BNAMETEST" != "$BNAME" ]; then echo "Fehler: Verbindung mit falschem Server." # Zwischenmeldung exit fi REMOTE_DIR_COUNT=$(ssh "$BUSER@$BIP" "ls -d "$BDIR/$MYNAME/20??????-????" 2>/dev/null | wc -l") if [ "$REMOTE_DIR_COUNT" -eq 0 ]; then ssh "$BUSER@$BIP" "mkdir -p "/"$BDIR"/"$MYNAME"/"$NOW" fi LAST_REMOTE_DIR=$(ssh "$BUSER@$BIP" ls -d "$BDIR/$MYNAME/20*-*" | sort | tail -1) OLDEST_REMOTE_DIR=$(ssh "$BUSER@$BIP" ls -d "$BDIR/$MYNAME/20*-*" | sort | head -1) rsync -au --delete --ignore-errors --partial --link-dest=/"$LAST_REMOTE_DIR" "$LDIR" "$LDIR1" "$BUSER@$BIP:$BDIR/$MYNAME/$NOW" # Maximal 7 Backups behalten if [ "$(ssh "$BUSER@$BIP" ls -d /"$BDIR"/"$MYNAME"/20*-* |wc -l)" -gt 7 ]; then ssh "$BUSER@$BIP" rm -rf "$OLDEST_REMOTE_DIR" fi