hier nun ein script welches man in mein update.sh script einbinden kann.
Es wird geprüft ob das Medium eingehängt ist und startet dann das Backup vom System. In der .exclude-liste Datei wird bestimmt was gesichert wird. Diese Datei habe ich auch auf die Backup-Platte gelegt, kann aber angepasst werden.
Das Backup arbeitet mit Hard-Links und ist somit Platz sparend. Legt man das Backup auf die interne Platte kann man dieses Backup einbinden für ein
Notfall Systemstart. Da sollte man nur die kernel nochmals kopieren und umbennenen und den Bootloader anpassen. Siehe mein update - script.
Die Option --delete habe ich bewußt nicht integriert und --progress kann entfernt werde, wer nicht möchte das alles gelistet wird.
Die Variablen quelle, ziel und medium müssen entsprechend angepasst werden. Hier ist als Beispiel das Root-System, eine USB - Platte wo das Verzeichniss system vorhanden ist und das medium /media/Backup angegeben. Wobei medium abgefragt wird und bestimmt ob das Backup läuft.
Das ganze kann man für /home nochmal schreiben oder in diesem Sript mitsichern lassen. So wie man möchte.
Der Script backup-root.sh:
Code: Alles auswählen
#!/bin/sh
quelle=/
ziel=/media/Backup/system/
medium=/media/Backup
datum=$(date +%d-%m-%Y-%H%M%S)
hosts=$(hostname | tail)
excludes=${ziel}.exclude-liste
if [[ -d "$medium" ]]; then
    echo "Backup- HDD ist eingehängt"
    cd /
    rsync -avlR --progress --exclude-from="$excludes" "${quelle}" "${ziel}$hosts-${datum}/" --link-dest="${ziel}last/"
    ln -nsf "${ziel}$hosts-${datum}" "${ziel}last"
    sync
    exit 0
 else
    echo "Kein Medium eingehängt, Backup beendet"
fi
exit 0
die .exclude-liste Datei: (Nur ein Beispiel)
Code: Alles auswählen
# nicht zu sichernde Verzeichnisse / Dateien
/proc/*
/sys/*
/media/*
/home/*
/.snapshots/*
/.subvolume/*
/run/*
/tmp/*
/var/tmp/*
EOF