ubuntuusers.de

Backup mit rsync und KDialog

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


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:

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:

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.

Diese Revision wurde am 2. Mai 2021 07:05 von frustschieber erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Backup, Shell, Sicherheit