P3So-Logo


Übersicht :=: Fotografie :=: Hardware :=: Programmieren :=: Kontakt :=: Impressum

links-links : rechts-

Programmieren

Delphi
HomePage-Generator
Picture-Workflow
DirScan
VBA

Texte
Bücher
Download

 

 

 

PS Backup

Auch hier habe ich spezielle Anforderungen:
Während ich an meinen Sourcen arbeite, möchte ich regelmäßig Zwischenstände sichern. Mehr als einmal habe ich viel Arbeit dadurch sparen können, dass ich nach einer Änderung einfach das Backup von vor einer Stunde eingespielt habe, weil "gar nichts mehr ging".
 

PS_Backup - Screenshot

 
Mein Backup-Programm macht daher
  • stündliche Backups innerhalb eines wählbaren Zeitraums (z.B. zwischen 8:00 und 18:00)
  • tägliche Backups zu einem wählbaren Zeitpunkt
  • wöchentliche Backups zu einem wählbaren Zeitpunkt
 
Backup-Aufgaben werden als "Jobs" definiert, die mehrere Quellverzeichnisse und ein Zielverzeichnis enthalten können und durch den Backup-Modus und den Ausführungszeitpunkt beschrieben sind.
Der Backup-Modus kann gewählt werden als
  • manuell (Start durch Anklicken der Schaltfläche "Backup")
  • stündlich (automatischer Start innerhalb der Grenzen "von - bis")
  • täglich (automatischer Start um hh:mm:ss Uhr)
  • wöchentlich (automatischer Start am dd.mm.jjjj um hh:mm:ss Uhr)
Beim Start des Jobs wird eine Liste aller Dateien der Quellverzeichnisse erstellt und mit der Dateiliste aus dem Zielverzeichnis verglichen. Alles, was neu ist, wird kopiert, alles, was jünger ist, wird ersetzt. Im Zielverzeichnis befindet sich so stets eine aktuelle und vollständige Kopie der Quelle(n).
 
 
 
 
Das Programm ist seit über fünf Jahren bei mir im Einsatz und sehr stabil, es ist nur wenig neue Funktionalität hinzugekommen.
In Version 4 wurde die interne Kopiermaschine gründlich überarbeitet und besser strukturiert. Wen das interessiert: hier gibt es die Sourcen (Delphi 7).
Aktuell ist mittlerweile die Version 4.7
.
 

 

Beschreibung

 
Das Programm "PS_Backup" dient der Datensicherung und wurde in erster Linie auf die Bedürfnisse eines Programmierers zugeschnitten.

 
Deshalb kopiert es Dateien nicht nur auf Knopfdruck, sondern auch in zyklischen Intervallen zu wählbaren Zeiten. Da ich PS_Backup zur Sicherung meiner Projekte verwende, habe ich so immer den Stand von vor einer (zwei, drei...) Stunde(n), von gestern (vorgestern...) und von letzter (vorletzter...) Woche zur Verfügung. Wenn meine letzte Änderung also wider Erwarten doch eine Verschlimmbesserung geworden ist, kann ich immer mit einem früheren Stand vergleichen bzw. dorthin zurückkehren.

Als Ausführungsintervall ist stündlich, täglich oder wöchentlich wählbar, wobei (der Tag und) die Stunde der ersten Ausführung eingestellt werden kann.
Was kopiert werden soll, wird in Form einer Liste von Quellverzeichnissen angegeben, wohin kopiert werden soll, als Zielverzeichnis. Alle Quellverzeichnisse, die ein Häkchen haben, werden kopiert. Durch Wegnehmen des Häkchens können also auch nur Teile des Copy-Jobs ausgeführt werden.
Im Zielverzeichnis wird dieselbe Ordnerstruktur erzeugt wie im Quellverzeichnis, d.h. "D:\Projekte" wird nach "F:\Backup\Projekte" kopiert, wenn als Quellverzeichnis "D:\Projekte" und als Zielverzeichnis "F:\Backup" eingestellt wird.
Die Option "nur Quellverzeichnisinhalt" bewirkt, dass nur der Inhalt des Ordners "D:\Projekte" nach "F:\Backup" kopiert wird, und kein Unterverzeichnis  "F:\Backup\Projekte" erstellt wird.
Die Option "Im Zielverzeichnis löschen" bestimmt, ob eine 1:1-Kopie erstellt werden soll, oder ob die Dateien im Zielverzeichnis akkumuliert werden sollen.
Es kann eine Ausschlussliste definiert werden, die in das Eingabefeld "diese ausschliessen:" eingetragen wird. Hier werden die üblichen Dateimuster verwendet (z.B. *.bak oder Kopie*.doc), die durch Semikolon voneinander getrennt werden. Das Dateimuster MUSS einen Stern enthalten.
Alternativ kann im Eingabefeld "nur diese kopieren:" festgelegt werden, dass nur Dateien berücksichtigt werden, die den angegebenen Dateimustern entsprechen (z.B. *.pas). Diese Angabe hat Vorrang vor der Ausschlussliste, d.h. wenn beide angegeben sind, wird nur die Nur-Diese-Liste ausgewertet.
Um ganze Verzeichnisse vom Kopieren auszunehmen, kann ein Suchmuster in das Feld "Ordner überspringen" eingetragen werden, z.B. "\_", um alle Verzeichnisse zu überspringen, die mit einem Unterstrich beginnen.

Diese Einstellungen definieren zusammen einen "Copy-Job".
Um einen Copy-Job anzulegen, wird die Schaltfläche "Neu" angeklickt, und ein Assistent fragt alle erforderlichen Einstellungen ab, die den Copy-Job definieren. Als Erstes wird dabei ein Name angegeben, der den Copy-Job beschreibt und der als Eintrag in die Jobliste benutzt wird.

Von solchen Copy-Jobs können beliebig viele definiert werden, die unterschiedliche Aufgaben erfüllen.
So habe ich z.B. einen Copy-Job, der die Projekte auf den USB-Stick kopiert, und einen Zweiten, der vom USB-Stick auf die Festplatte kopiert.

Alle Programmeinstellungen und Copy-Job-Definitionen werden in der Registry abgespeichert und stehen beim nächsten Aufruf wieder zur Verfügung. Alternativ kann zur Speicherung auch die Datei "PS_Backup.ini" dienen, die automatisch verwendet wird, wenn sie im Programmverzeichnis vorhanden ist.
Ich benutze diese letztere Variante auf externen Laufwerken, die außer den Daten auch das Programm PS_Backup und die passende Konfigurationsdatei im Wurzelverzeichnis enthalten. So brauche ich jeweils nur einen Doppelklick, um meine Projekte auf den Stick, meine Fotos auf Platte 1 und meine Dokumente auf Platte 2 zu sichern, sobald das Laufwerk angeschlossen ist.
Um eine solche INI-Datei erstmalig zu erzeugen, kann die Export-Funktion von PS_Backup benutzt werden. Sie erzeugt eine Datei "PS_Backup.export.ini", in die alle aktuellen Einstellungen geschrieben werden. Diese Datei kann an anderer Stelle von PS_Backup importiert werden, um beispielsweise Einstellungen von einem Rechner auf einen anderen zu übertragen, oder um durch Umbenennen in "PS_Backup.ini" eine lokale Einstellungsdatei zu erzeugen.

Expertentip:
Da die Quell- und Zieldateisysteme unterschiedliche Uhrzeiten haben können (z.B. wenn nicht beide Rechner ihre Uhren per Internet-Zugriff synchronisieren), kann es vorkommen, dass zuviele Dateien kopiert werden, weil eigentlich gleichalte Dateien von Zielrechner einen anderen Zeitstempel erhalten.
Das Backup-Programm versucht, die Zeitdifferenz zwischen den Dateisystemen zu messen und entsprechend zu berücksichtigen. Man kann aber auch gezielt eingreifen und den Parameter "Zeitunterschied" setzen, allerdings nur in der INI-Datei bzw. in der Registry. Standardwert ist zwei Sekunden, es kann aber ein größerer Wert gesetzt werden, falls die automatische Ermittlung nicht das gewünschte Ergebnis bringt.
 
   
 

 

 

 
 
 letzte Änderung:
Sonntag, 4. September 2011
 

zurück zurück : oben Anfang

  email
 

 
Anfang