Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| home-harmening:sicherheit:backup:rclone:rclone_backup_skript [2024/10/14 08:39] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | home-harmening:sicherheit:backup:rclone:rclone_backup_skript [2024/10/14 09:40] (aktuell) – charmening | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| + | ====== Rclone backup Skript ====== | ||
| + | Hier ein kleines Skript, welches von mir verwendet wird um automatisch Backups von Dateien und Ordner mittels rsync auf einen Cloud Speicher zu sichern. | ||
| + | - Kopiere das Skript nach / | ||
| + | - Wieviel alte Backups möchtest du behalten? Konfiguriere die KEEP Variable im Skript. | ||
| + | - Den Remote Pfad der genutzt werden soll mit der Variable REMOTE einstellen. | ||
| + | - Erstelle einen Cronjob und entscheide wie oft ein backup erstellt werden soll. | ||
| + | \\ | ||
| + | **__Bedienung: | ||
| + | \\ | ||
| + | {{ : | ||
| + | Aufruf mit ./ | ||
| + | < | ||
| + | - Es wird die Datei / | ||
| + | - Danach wird wird nach user1 Dateien auf der Cloud gesucht und nur die 3 aktuellsten werden behalten. | ||
| + | - Jetzt wird die Datei / | ||
| + | \\ \\ | ||
| + | Es sollte hierfür ein Cronjob erstellt werden. | ||
| + | \\ | ||
| + | **__Beispiel: | ||
| + | < | ||
| + | \\ \\ | ||
| + | ==== Skript ==== | ||
| + | < | ||
| + | # | ||
| + | # Benutzung mit ./ | ||
| + | # Variablen | ||
| + | #Wieveiele Backups werden behalten | ||
| + | KEEP=$1 | ||
| + | # Remote Pfad von Rclone | ||
| + | REMOTE=gdrive:/ | ||
| + | # Wovon das Backup erstellen | ||
| + | BACKUPFROM=$2 | ||
| + | |||
| + | # Wurde die KEEP Variable gesetzt? Wenn nicht setze den Default | ||
| + | if [ -z $KEEP ]; then KEEP=3; fi | ||
| + | # Wurde ein Backuppfad übergeben? | ||
| + | if [ -z $BACKUPFROM ]; then echo "Was soll gesichert werden? Aufruf mit ./ | ||
| + | |||
| + | # Wichtige Variable erstéllen | ||
| + | DATE=$(date +%Y%m%d-%H%M%S) | ||
| + | NEWBACKUP=$(basename $BACKUPFROM)-$DATE.tar.gz | ||
| + | RED=' | ||
| + | GREEN=' | ||
| + | YELLOW=' | ||
| + | NC=' | ||
| + | |||
| + | # Lokale Sicherung erstellen | ||
| + | if [ -f / | ||
| + | tar cfz / | ||
| + | |||
| + | # Remote Backups auslesen | ||
| + | # Liste der Backups die bleiben | ||
| + | KEEPLIST=$(rclone ls $REMOTE | grep $(basename $BACKUPFROM) | awk ' | ||
| + | # Liste aller Backups auf Remote | ||
| + | REMOTELIST=$(rclone ls $REMOTE | grep $(basename $BACKUPFROM) | awk ' | ||
| + | |||
| + | # Prüfung ob backup gelöscht werden kann. Wenn das Backup nicht in der KEEPLIST steht, dann lösche dieses | ||
| + | for BACKUP in $REMOTELIST ; do | ||
| + | if echo " | ||
| + | then continue | ||
| + | else | ||
| + | printf " | ||
| + | fi | ||
| + | done | ||
| + | |||
| + | printf " | ||
| + | # Neues Backup hochladen | ||
| + | if rclone copy / | ||
| + | logger " | ||
| + | printf " | ||
| + | fi | ||
| + | printf " | ||
| + | rm / | ||
| + | </ | ||