Benutzer-Werkzeuge

Webseiten-Werkzeuge


k11:k11.11:start

11.11 Sicherung von Projekten

Der Autor arbeitet seit vielen Jahren unter http://www.gambas-buch.de an der Online-Version des Gambas-Buches. Daher ist die Anzahl der bearbeiteten Gambas-Projekte in den über 30 Buch-Kapiteln sehr groß. Diese Projekte werden deshalb von Anfang an regelmäßig auf mehrere mobile Datenträger gesichert.

11.11.1 Variante 1

In unregelmäßigen Abständen werden die Gambas-Projekte auf DVD gebrannt und gut verwahrt.

11.11.2 Variante 2

Für die regelmäßige Sicherung der Gambas-Projekte wird das Programm 'Datensicherungswerkzeug' (→ Mint 17.3) eingesetzt, das einfach zu bedienen ist und mit den erprobten Einstellungen ein Archiv auf dem Ziel-Datenträger speichert:

B1

Abbildung 11.11.2.1: Datensicherungswerkzeug in Mint 17.3

Hinweise:

  • Sie können in einem weiteren Schritt ausgewählte Ordner und Dateien von der Sicherung ausschließen.
  • Bevor Sie die Sicherung starten, sollten Sie die Einstellungen überprüfen!
  • Der Archiv-Name folgt der Syntax: jahr-monat-tag-id-backup.tar.gz, wenn Sie bei der Ausgabe ein tar.gz-Archiv wählen:

B2

Abbildung 11.11.2.2: Archiv-Datei

11.11.3 Variante 3

Favorit bei der Sicherung der Gambas-Projekte ist immer noch ein kleines Shell-Skript für das Programm 'rsync'. Das Skript synchronisiert den Ordner mit allen Gambas-Projekten gegen den (gleichnamigen) Ordner auf einem mobilen Datenträger. Alle Änderungen im Projekt-Ordner werden in einem Backup-Ordner gespeichert, so dass zum Beispiel auch gelöschte Projekte dort mit gesichert werden. Es ist von Vorteil, dass man in der Ordner-Struktur der Sicherung jederzeit nach interessierenden Projekten suchen kann. Der Bash-Quelltext für das Skript (projekte2usbstick.sh) ist erfreulich kurz:

[1] #!/bin/sh
[2] #
[3] # FARB-WERTE:
[4] RO="\033[31m"                 # Schriftfarbe rot
[5] FR="\033[1m\033[31m"          #
[6] FG="\033[1m\033[42m\033[37m"  # Schriftfarbe fett + weiß + grüner Hintergrund
[7] NO="\033[0m"                  # Schriftfarbe normal
[8] #
[9] echo
[10] STICK="16_GB_P" # Geräte-Label USB-Stick (16GB)
[11] #
[12] df -k | grep /media/$USER/$STICK 1>/dev/null 2>/dev/null
[13] if [ $? -gt 0 ];
[14] then
[15]   echo "${RO}Der USB-Stick $STICK muss eingehängt sein!";
[16]   echo "Das Sicherungsprogramm wird deshalb beendet!${NO}";
[17]   echo
[18]   echo "Beenden mit ENTER!";
[19]   read a
[20]   exit 1;
[21] else
[22] echo
[23] echo "${FG}Sicherung Gambas-Projekte auf USB-Stick $STICK mit ENTER starten ...${NO}"
[24] echo "__________________________________________________________________________";
[25] echo
[26] read a
[27] # Muster:
[28] # sudo rsync -ab --progress --delete --backup-dir=BACKUP-DIR SOURCE-DIR/ TARGET-DIR 
[29] sudo rsync -ab --progress --delete --backup-dir=/media/$USER/$STICK/GB3Backup $HOME/GB3Projekte/ /media/$USER/$STICK/GB3Projekte  
[30] #
[31] echo
[32] echo "__________________________________________________________________________";
[33] echo 
[34] echo "${FR}Ende der Sicherung auf $STICK.${NO}"
[35] echo
[36] echo "${FR}Der USB-Stick $STICK wird anschließend ausgehängt!${NO}"
[37] echo "${FR}Abschluss mit ENTER!${NO}"
[38] read b
[39] fi
[40] echo
[41] echo "${FG}Unbedingt warten, bis der USB-Stick $STICK ausgehangen worden ist!${NO}";
[42] echo 
[43] umount /media/$USER/$STICK

Hinweise:

  • Prüfen Sie, ob das Programm 'rsync' installiert ist. Holen Sie die Installation u.U. nach.
  • Bevor Sie ernsthaft loslegen, lesen Sie sich bitte Details zum Konsolen-Programm rsync mit 'man rsync' und 'rsync -h' aufmerksam durch.
  • Viele Beispiele zeigt die Seite https://wiki.ubuntuusers.de/rsync/.
  • Nutzen Sie den verwendeten USB-Stick nur für Sicherungen.
  • Das Skript muss ausführbar sein.
  • Für erste Tests sollten Sie mit einem Test-Verzeichnis mit 2 zu sichernden Verzeichnissen und einigen Dateien beginnen.
  • Die ersten Tests sollten Sie mehrfach mit der Option –dry-run (Kurzform -n) durchführen bis alles passt – so erleben Sie keine (bösen) Überraschungen. Bedenken Sie, dass Sie mit Root-Rechten arbeiten und in großem Umfang Verzeichnisse und Dateien gelöscht, verschoben und kopiert werden.
$ sudo rsync -ab --dry-run --progress --delete --backup-dir=/media/$USER/$STICK/GB3Backup $HOME/GB3Projekte/ /media/$USER/$STICK/GB3Projekte

Es folgt die (stark gekürzte) Ausgabe für einen Trocken-Synchronisationsdurchlauf :

Sicherung Gambas-Projekte auf USB-Stick 16_GB_P mit ENTER starten ...
_____________________________________________________________________

[sudo] password for hans: 

sending incremental file list
created directory /media/hans/16_GB_P/GB3Projekte
Created backup_dir /media/hans/16_GB_P/GB3Backup/
./
CSV2XML_WRITER/
CSV2XML_WRITER/.directory
CSV2XML_WRITER/.gitignore
...
CSV2XML_WRITER/Symbols/form_icon.png
CSV2XML_WRITER/Symbols/projekt_icon.png
DATA2XML_WRITER/
DATA2XML_WRITER/.directory
...
DBDATA2XML_WRITER/Symbols/report32.png

sent 3,478 bytes  received 476 bytes  7,908.00 bytes/sec
total size is 424,536  speedup is 107.37 (DRY RUN)
_____________________________________________________________________

Ende der Sicherung auf 16_GB_P.
Der USB-Stick 16_GB_P wird anschließend ausgehängt!
Abschluss mit ENTER!

Unbedingt warten, bis der USB-Stick 16_GB_P ausgehangen worden ist!

Wenn der USB-Stick für die Sicherung nicht eingehängt ist, so wird das erkannt und angezeigt sowie das Skript beendet:

B3

Abbildung 11.11.3.1: Fehleranzeige

Wenn alle Tests ohne Fehler durchgeführt worden sind, dann können Sie Ihre Gambas-Projekte sichern. Nach einem Synchronisationsdurchlauf sind die ausgewählten Ordner auf der Festplatte (Quelle) auch 1:1 auf dem USB-Stick (Ziel). Veränderungen befinden sich im Backup-Ordner auf dem USB-Stick.

Diese Zeile* zur synchronen Sicherung eines Verzeichnisses – mit Backup – leistet die Hauptarbeit:

$ sudo rsync -ab --progress --delete --backup-dir=/media/$USER/$STICK/GB3Backup $HOME/GB3Projekte/ /media/$USER/$STICK/GB3Projekte
Option - ParameterBeschreibung
-aListe erprobter Optionen (→ Manual)
-bBackups werden erstellt.
–dry-run (Kurzform: -n)Es wird eine Synchronisation simuliert. Es erfolgt ein Trocken-Testlauf, der nichts wirklich synchronisiert!
–progressDer Fortschritt während des Synchronisierens wird angezeigt.
–deleteDateien, die in der Quelle nicht mehr existieren, werden auch im Ziel gelöscht.
–backup-dir=
/media/$USER/$STICK/GB3BackupWas nicht synchronisiert werden kann, weil verschoben oder im Original gelöscht, wird im Backup-Verzeichnis aufgehoben.
$HOME/GB3Projekte/Quellverzeichnis im Home-Verzeichnis auf Festplatte. Achten Sie auf das Slash-Zeichen am Ende!
/media/$USER/$STICK/GB3ProjekteZielverzeichnis auf dem USB-Stick im Wurzelverzeichnis.

Tabelle 11.11.3.1 : Übersicht zu Optionen und Parametern in der Kommando-Zeile*

Sie können jederzeit weitere Zeilen in den Skript-Quelltext einfügen, wenn weitere Verzeichnisse mit ihren Unterverzeichnissen und den darin enthaltenen Dateien synchronisiert gesichert werden sollen.

  • Im Download-Bereich finden Sie ein Bash-Skript mit dem o.a. Quelltext. Sie müssen für Ihre Sicherung den Quelltext in den Zeilen 10 und 29 ändern, wenn Sie auf einen USB-Stick sichern.
  • Beachten Sie: Die Nutzung des Skripts projekte2usbstick.sh erfolgt auf eigene Gefahr!

11.11.4 Variante 4

Diese Variante der Datensicherung wurde in Form eines Gambas-Frontends für das Konsolen-Programm 'rsync' realisiert. Diese Anwendung erlaubt das Anlegen und Editieren einer Jobliste für das Synchronisieren von Verzeichnissen oder einzelner Dateien.

Die optionale Anwendung von Root-Rechten bei Shell-Hintergrundprozesse wird durch die Option '-S' des 'sudo'-Kommandos erreicht, die eine Umleitung der Passwortabfrage in die Error-Routine des Prozesses bewirkt, wo das Root-Passwort an den Prozess übergeben werden kann:

Synchronisataion

Abbildung 11.11.4.1: Gambas-Frontend 'gb.rsync'

Beispiel für den Start eines Shell-Prozesses mit Root-Rechten:

SCommand = "LC_ALL=en_GB.utf8 sudo -S rsync -ab --progress --delete /home/user/Documents /media/user/STICK"
 
' Start rsync process with shell command
hShellProcess = Shell sCommand For Read Write As "rsyncShellProcess"

Die Übergabe und Überprüfung des Root-Passwortes erfolgt in der Error-Ereignis-Routine des Shell-Prozesses:

Public Sub rsyncShellProcess_Error(sErr As String)
 
  Dim PW As String
 
  If sErr Like "*password*" Then
     PW = TextBoxPW.Text
     Print #hShellProcess, PW & gb.LF
     PW = ""
  Else If sErr Like "*try again*" Then
     If hShellProcess
        hShellProcess.Close()
        hShellProcess.Kill()
     Endif
     Message.Error(("Wrong sudo password!") & GB.LF & ("Please try again."), "OK")
   Else
     ErrorList &= sErr & gb.Lf
  Endif
End

Da es bei parallel ablaufenden 'rsync'-Hintergrundprozessen zu unberechenbaren Abläufen kommen kann, sorgt das Programm für sequenzielle Shell-Aufrufe. Nur so ist gewährleistet, dass der vollständige Abschluss aller Synchronisierungsaufgaben zuverlässig erkannt wird und auftretende Fehlermeldungen der Reihe nach erfasst werden.

Als Besonderheit ist die Anwendung des ColumnView-Steuerelements zu erwähnen, dem (Pseudo-) Checkboxen in Form von Grafiken hinzu gefügt wurden. Eine Beschreibung der Eigenschaften, Methoden und Ereignisse des Steuerelements ColumnView finden Sie im Kapitel → 17.5 ColumnView.

Hinweise für die Nutzung des Programms:

  • Das Programm 'gb.rsync' prüft, ob das erforderliche Konsolen-Programm 'rsync' auf Ihrem Rechner installiert ist. Falls nicht, erfolgt ein entsprechender Hinweis und eine Anweisung, wie man es installiert.
  • Eingehängte Medien wie zum Beispiel USB-Sticks finden Sie normalerweise im Verzeichnis '/medien/user'.
  • Falls das Programm Fehler der Art „Operation not permitted“ während einer Synchronisation meldet, so führen Sie das gleiche Backup noch einmal unter Root-Rechten → CheckBox 'Als Root' durch.
  • Die Funktion der Option '–delete' ist bereits in der oben beschriebenen Variante 3 erläutert, allerdings wird im Programm 'gb.rsync' im Ziel-Verzeichnis ein Backup-Verzeichnis mit dem Namen '/Backup' angelegt.
  • Die Option '–slow' bewirkt ein Komprimierung der übertragenen Daten beim Transfer über langsame Verbindungen.

Beachten Sie: Die Nutzung des Programms gb.rsync erfolgt auf eigene Gefahr!

11.11.5 Variante 5

Wenn Ihnen von einem Anbieter Cloud-Speicher in hinreichender Größe zur Verfügung gestellt wird, dann sollten Sie erwägen, ihre Gambas-Projekte (auch) dort verschlüsselt zu speichern. Das hätte den Vorteil, dass Ihre Daten – im Gegensatz zu den anderen Varianten – an einem unabhängigen Ort gespeichert sind. Bisher wurde diese Variante vom Autor noch nicht umgesetzt – wird aber erwogen.

Download

Wir verwenden Cookies, um unser Internetangebot optimal zu gestalten. Durch weitere Nutzung dieser Webseite stimmen Sie der Verwendung von Cookies zu. Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung
k11/k11.11/start.txt · Zuletzt geändert: 06.01.2018 von honsek

Seiten-Werkzeuge