Backup mit rsync und KDialog
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Das Backupskript für rsync benutzt KDE-Dialoge, damit man mausgesteuert ein Backup von den angegebenen Quellpfaden in dem angegebenen Zielverzeichnis erstellen kann. Dabei werden im Homeverzeichnis im Ordner "Backup Infos" für jeden Quellpfad zwei Textdateien erstellt:
eine Textdatei mit der Auflistung der Dateien, die gesichert wurden.
eine Textdatei, die eventuell aufgetretene Fehler enthält.
Dieses Backupskript ist nur für die Sicherung von Dateien im Homeverzeichnis gedacht, also alles, was man so im Laufe der Zeit an Dateien erstellt und gesammelt hat. Im Backupskript sind die von KDE 4.3.2 angelegten Ordner als Quellpfade eingetragen, das Zielverzeichnis setzt sich wie folgt zusammen:
$HOME/Backup vom MONAT.JAHR
Strategie von KDE-Backup.sh¶
Betriebssysteme und Programme kann man nach einem Crash mit etwas Zeitaufwand wieder herstellen, bei Dateien, die man erstellt bzw. gesammelt hat, ist es ohne ein Backup im Extremfall nicht möglich, darum sollte man ein Backup von wichtigen Dateien auf einem externen Medium erstellen.
Für ein schnelles Backup wird das Skript einfach mit Mausklick gestartet, die Quellpfade werden dann auf der internen Festplatte im Zielpfad gesichert. Diese Art ist gedacht für ein Backup zu jeder Zeit in kurzen Abständen auf der internen Festplatte, so kann man schnell versehentlich gelöschte Dateien wieder herstellen.
Ein Backup auf externe Medien ist auch kein Problem, einfach den ersten Dialog mit "Nein" beantworten. In der dann erscheinenden Datei Auswahlbox das externe Medium auswählen und mit "OK" bestätigen, die Quellpfade werden nun auf dem externen Medium gesichert. Diese Art sollte je nach Datenaufkommen z.B. monatlich gemacht werden.
Zusätzliche Pakete¶
Folgende Pakete müssen vorhanden sein, damit das Skript funktioniert [1]:
Unter Focal Fossa wird statt des Paketes kdebase-bin kde-baseapps verwendet.
rsync
kdebase-bin (universe)
kdebaseapps (focal)
Befehl zum Installieren der Pakete:
sudo apt-get install rsync kdebase-bin kdebaseapps
Oder mit apturl installieren, Link: apt://rsync,kdebase-bin,kdebaseapps
Bedienung¶
Wenn das Backupskript gestartet wird, erscheint zuerst ein Dialog mit Informationen, was wohin gesichert wird. Bestätigt man diesen Dialog mit "Ja", werden die vorgegebenen Quellpfade zum vorgegebenen Zielpfad gesichert.
Bei "Nein" wird eine Datei-Auswahlbox geöffnet, in der man einen anderen Zielpfad auswählen kann. Die Quellpfade, die gesichert werden, bleiben dabei unverändert.
Bei "Abbruch" wird das Backupskript abgebrochen.
Wurde das Backupskript nicht abgebrochen, erscheint ein Dialog, wenn das Backupskript mit dem Sichern der Quellpfade fertig ist.
Dateisysteme¶
Das Skript wurde / wird mit den Dateisystemen ext2, ext3, ext4 auf internen Festplatten, externen Festplatten und USB-Sticks getestet / benutzt.
Das Skript¶
Zuerst öffnet man einen Texteditor [2] und kopiert den folgenden Text hinein:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | #!/bin/bash # # --- Infos ----------------------------------------------------------------------------------- # # Scriptname KDE-Backup.sh # Funktion Backup mit rsync & kdialog (KDE-Dialoge) # # Beschreibung Es wird ein Backup von den Ordnern, die in den Variablen # $quelle_1 bis $quelle_9 angegeben sind, nach Ziel, welches in der # Variablen $ziel steht, erstellt. # Wenn dem Skript Ordner übergeben wurden, werden diese im # Bereich "--- Ordner wurden übergeben ---" in die Variablen # übernommen, das Ziel kann in diesem Fall ein anderes sein. # # benötigt bash, rsync & kdialog # # Autor Naubaddi # # Status noch in Arbeit ( wer wird schon fertig??? ) # Fehler keine, oder??? ( Naubadi is pörfekt ) # # Start 25.07.2003 # Stand 30.11.2009 # # --- Variablen ------------------------------------------------------------------------------- # # $HOME # der Home-Ordner (vom System) # $USER # der User-Name (vom System) $1 # Aufrufparameter, wurden Ordner übergeben? log_datei="" # Textdatei mit einer Auflistung der gesicherten Dateien error_datei="" # Textdatei für eventuelle Fehlermeldungen le_ordner="" # ein Ordner für die log/error Dateien fehler="" # für aufgetretene Fehler backup_x="1" # Zähler für die while-Schleife quelle="$1" # Quelle, die gesichert werden soll (Pfad & Ordner) quelle_ordner="" # nur der Ordner von quelle max_quellen="9" # max. Anzahl der Quellen, die gesichert werden können # # --- Parameter für rsync hier eintragen ------------------------------------------------------ # para="-av" # # --- ab hier die Ordner, die gesichert werden sollen, eintragen -------------------------------- # quelle_1="$HOME/Bilder" quelle_2="$HOME/Desktop" quelle_3="$HOME/Dokumente" quelle_4="$HOME/Downloads" quelle_5="$HOME/Musik" quelle_6="$HOME/Öffentlich" quelle_7="$HOME/Videos" quelle_8="$HOME/Vorlagen" quelle_9="" # # --- das Standard Ziel für die Ordner hier eintragen ----------------------------------------- # ziel="$HOME/Backup vom `date +'%m.%y'`" # # --- es wurden Ordner übergeben ------------------------------------------------------------ # if [ "$quelle" ] then # quelle_1="$1" quelle_2="$2" quelle_3="$3" quelle_4="$4" quelle_5="$5" quelle_6="$6" quelle_7="$7" quelle_8="$8" quelle_9="$9" # # --- das Standard-Ziel für die übergebenen Ordner hier eintragen --------------------------- # ziel="$HOME/Backup vom `date +'%m.%y'`" # fi # # --- Text für die Datei-Auswahlbox ----------------------------------------------------------- # alle_quellen="$quelle_1 $quelle_2 $quelle_3 $quelle_4 $quelle_5 $quelle_6 $quelle_7 $quelle_8 $quelle_9" # # --- Nach Ziel fragen und dann das Backup von X nach Y starten ------------------------------- # kdialog --title "Backup mit rsync" --yesnocancel "von Quelle:\n$alle_quellen\n\nnach Ziel:\n$ziel\n\nMit \"Nein\" kann ein anderes Ziel gewählt werden!\n" # case $? in 0) ;; # es ist nix zu tun, das Standard-Ziel wird benutzt 1) ziel=`kdialog --title "Ziel für das Backup auswählen" --getexistingdirectory "$HOME" "*"`;; 2) ziel="";; # es ist gar nix zu tun, das Backup wurde abgebrochen esac # if [ "$ziel" ] then # le_ordner="$HOME/Backup Infos" # if [ ! -d "$le_ordner" ] then mkdir "$le_ordner" fi # while [ "$backup_x" -le "$max_quellen" ] do # case "$backup_x" in # 1) quelle="$quelle_1";; 2) quelle="$quelle_2";; 3) quelle="$quelle_3";; 4) quelle="$quelle_4";; 5) quelle="$quelle_5";; 6) quelle="$quelle_6";; 7) quelle="$quelle_7";; 8) quelle="$quelle_8";; 9) quelle="$quelle_9";; # esac backup_x="$((backup_x+1))" # if [ "$quelle" ] then quelle_ordner="${quelle##*/}" # log_datei="$le_ordner/Backup von $quelle_ordner vom `date +'%d.%m.%y - %H:%M:%S'`.txt" error_datei="$le_ordner/ERROR bei $quelle_ordner vom `date +'%d.%m.%y - %H:%M:%S'`.txt" # echo "Backup von $quelle nach $ziel" > "$log_datei" echo "" >> "$log_datei" # (rsync "$para" "$quelle" "$ziel" | tee -a "$log_datei") 2>>"$error_datei" # if [ -s "$error_datei" ] then fehler="$fehler$quelle " fi # fi # done # if [ "$fehler" ] then kdialog --title "Fehler beim Backup" --msgbox "von:\n$fehler\n\nnach:\n$ziel\n\nInfos stehen im Ordner \"$le_ordner\" in den \"ERROR bei...\" Dateien.\n" else kdialog --title "Backup wurde erstellt" --msgbox "von:\n$alle_quellen\n\nnach:\n$ziel\n\nInfos stehen im Ordner \"$le_ordner\" in den \"Backup vom...\" Dateien.\n" fi # else # kdialog --msgbox "Abbruch, durch Benutzer $USER.\n" # fi # # --- Skript Ende ----------------------------------------------------------------------------- # |
Die Datei wird z.B. unter dem Namen /home/BENUTZERNAME/KDE-Backup.sh gesichert.
Danach muss das Skript noch ausführbar gemacht werden, damit es einsatzbereit ist.
Skript Anpassen¶
Mit einem Editor [2] kann man das Skript den persönlichen Bedürfnissen wie z.B. "rsync Parameter, Quellpfade & Zielpfade" einfach anpassen, die Bereiche, die dafür angepasst werden können, sind:
# –- Parameter für rsync hier eintragen –-
# –- ab hier die Ordner, die gesichert werden sollen, eintragen –-
# –- das Standard-Ziel für die Ordner hier eintragen –-
# –- das Standard-Ziel für die übergebenen Ordner hier eintragen –-
Drag & Drop¶
Wenn man auf dem Desktop eine Verknüpfung zum Skript mit "Starter anlegen ..." erstellt, können mit Drag & Drop bis zu neun Ordner auf der Verknüpfung abgelegt werden, das Skript wird dadurch gestartet und übernimmt die Ordner als Quellpfade für das Backup.
Daten wieder herstellen¶
Die Daten können ohne großen Aufwand mit einem Dateimanager bei Bedarf zurückkopiert werden.