Synchronisieren mit digestercli und Ant

Synchronisieren mit digestercli

Die Digester-Software bietet die Möglichkeit, Synchronisierungen auch über die Kommandozeile starten zu können. Hierzu können dem Programm bei Aufruf Dateien, Verzeichnisse oder Netzdateien übergeben werden. Prinzipiell lassen sich alle Synchronisierungen der grafischen Programm-Version auch mit digestercli bewerkstelligen, wodurch sich die Software auch direkt z.B. aus Shell-Skripten heraus nutzen lässt.

Sie können die Programmaufrufe manuell erstellen oder die Unterstützung der grafischen Digester-Variante in Anspruch nehmen, die die erforderlichen Parameter passend zusammenstellt. Erstellen Sie hierzu einfach einen Synchronisierungsvorgang mit Hilfe des Synchronisieren-Fensters, so als ob sie diesen dort durchführen wollten. Sind alle Einstellungen wie gewünscht, lässt sich mit der Schaltfläche mit dem Konsolensymbol unten der Aufruf für digestercli anzeigen. Diesen können Sie einfach in eigene Shell-Skripte kopieren.

Alle unterstützten Optionen können in beliebiger Reihenfolge übergeben werden, wobei die dazugehörigen Werte aber an der richtigen Stelle stehen müssen. Alle Parameter sind optional, mögliche Eingabefehler werden soweit wie möglich erkannt und automatisch kompensiert. Entweder meldet das Programm fehlerhafte Parameter direkt oder erzeugt entsprechende Einträge innerhalb der Log-Datei. Zu verarbeitende Dateien, Verzeichnisse oder URLs der Quell- und Zielauswahlen können mit den Parametern -sourceset bzw. -targetset (plus Name) übergeben werden.

Die Kommandozeilen-Variante der Digester-Software digestercli unterstützt aktuell folgende Parameter und Werte, die sich durch den Aufruf von digestercli -? sync ausgeben lassen:

 

Verwendung: digestercli [-Optionen] -sourceset <Datei|Verzeichnis|URL> ... -targetset <Name> <Datei|Verzeichnis|URL> ...

Unterstützte sync-Optionen sind:

-sync                           Dateien und Verzeichnisse mit Prüfsummen synchronisieren
-bsdperdirectory                BSD-Dateien pro Verzeichnis verarbeiten
-bsdpertarget                   BSD-Dateien pro Ziel verarbeiten
-flipsourcetarget <Ausw>        Umgekehrter Modus: Von Ziel-Auswahl zur Quelle übertragen
-gensrctemplate <Vorlage>       Berechnen-Vorlage vor Synchronisierung ausführen (Quellen)
-gensrctemplaterefresh          Berechnen-Vorlage zum Auffrischen ausführen (Quellen)
-gentemplate <Ausw> <Vorlage>   Berechnen-Vorlage vor Synchronisierung ausführen (Ziele)
-gentemplaterefresh <Ausw>      Berechnen-Vorlage zum Auffrischen ausführen (Ziele)
-gnuperdirectory                MD5SUM-Dateien pro Verzeichnis verarbeiten
-gnupertarget                   MD5SUM-Dateien pro Ziel verarbeiten
-ignoreregex <Wert>             Regulärer Ausdruck für ignorierte Dateien
-includeregex <Wert>            Regulärer Ausdruck für berücksichtigte Dateien
-md2 Verarbeite                 MD2-Prüfsummen
-md4 Verarbeite                 MD4-Prüfsummen
-md5 Verarbeite                 MD5-Prüfsummen
-optdigest                      Prüfsummen für Quelle/Ziel passen
-optfilesize                    Dateigrößen von Quelle/Ziel passen
-optintermediate                Zwischenprüfsummen für Quelle/Ziel passen
-optpgpsig                      OpenPGP-Signaturen für Quelle/Ziel passen
-opttimestamp                   Zeitstempel von Quelle/Ziel passen
-optxmlentryfilesize            XML-Dateigrößen passen für Quelle/Ziel
-optxmlentrytimestamp           XML-Zeitstempel passen für Quelle/Ziel
-overwrite                      Vorhandene Dateien überschreiben
-pgppertarget                   OpenPGP Signatur-Dateien pro Ziel verarbeiten
-ripemd128                      Verarbeite RIPEMD-128 Hash-Dateien
-ripemd160                      Verarbeite RIPEMD-160 Hash-Dateien
-ripemd256                      Verarbeite RIPEMD-256 Hash-Dateien
-ripemd320                      Verarbeite RIPEMD-320 Hash-Dateien
-sha1 | sha                     Verarbeite SHA-1 Hash-Dateien
-sha224                         Verarbeite SHA-224 Hash-Dateien
-sha256                         Verarbeite SHA-256 Hash-Dateien
-sha384                         Verarbeite SHA-384 Hash-Dateien
-sha512                         Verarbeite SHA-512 Hash-Dateien
-sourcetimestamp                Quelldatei-Zeitstempel für Zieldateien setzen
-subdirectories                 Unterverzeichnisse einbeziehen
-syncgnubsdtimestamp            Prüfsummen vertrauen, wenn GNU/BSD-Dateizeitstempel passen
-syncmapping <Wert>             Synchronisierungs-Zuordnung als Standard verwenden
-syncpgptimestamp               Prüfsummen vertrauen, wenn OpenPGP-Dateizeitstempel passen
-syncxmlentryfilesize           Prüfsummen vertrauen, wenn XML-Dateigröße passt
-syncxmlentrytimestamp          Prüfsummen vertrauen, wenn XML-Dateizeitstempel passt
-syncxmltimestamp               Prüfsummen vertrauen, wenn XML-Dateizeitstempel passen
-tiger                          Verarbeite Tiger Hash-Dateien
-transferall                    Alle Quellen ohne Optimierung übertragen
-verbose                        Ausführliche Ausgaben erzeugen
-whirlpool                      Verarbeite Whirlpool Hash-Dateien
-xmlperdirectory                Digester XML-Dateien pro Verzeichnis verarbeiten
-xmlpertarget                   Digester XML-Dateien pro Ziel verarbeiten

 

-sync

Aktiviert den Betriebmodus zur Synchronisierung von Dateien und Verzeichnissen mit Prüfsummen und OpenPGP-Signaturen. Die Parameter entsprechen dabei weitgehend den Optionen des Synchronisieren-Fensters der grafischen Variante der Digester-Software.

Fehlen die unten dargestellten sync-Parameter, so werden möglichst die vom Synchronisieren-Fenster verwendeten Standardwerte eingesetzt. Sie können sich alle für den Vorgang verwendeten Parameter samt Werten mit dem Parameter -verbose auflisten lassen.

-bsdperdirectory

Prüfsummen-Dateien im BSD-Format pro Verzeichnis prüfen. Alle pro Verzeichnis berechneten Originaldatei-Prüfsummen werden in jeweils eine Prüfsummen-Datei gespeichert, wobei die Algorithmen mit den Parametern -md5 für MD5 usw. festgelegt werden können. Die Dateien tragen dann die mit dem Parameter -extmd5 usw. festgelegte Dateiendung sowie den mit dem Parameter -summaryfile festgelegten Namen.

Sie können zusätzlich auch BSD-Dateien pro Ziel prüfen lassen (siehe Parameter -bsdpertarget).

-bsdpertarget

Prüfsummen-Dateien im BSD-Format pro Ziel prüfen. Pro berechneter Originaldatei wird genau eine Prüfsummen-Datei mit einem einzigen Wert zum jeweiligen Algorithmus (z.B. -md5 für MD5) angelegt. Die Dateien tragen dann die mit dem Parameter -extmd5 usw. festgelegte Dateiendung.

Sie können zusätzlich auch BSD-Dateien pro Verzeichnis prüfen lassen (siehe Parameter -bsdperdirectory).

-flipsourcetarget <Ausw>

Die Synchronisierung wird standardmäßig von der Quelle zum Ziel durchgeführt, d.h. die Quellen werden auf die Ziele übertragen. Es kann aber notwendig sein, die Einträge in umgekehrter Richtung, also von den Zielen zu den Quellen zu transferieren. Die hier festgelegte Zielauswahl wird dann ausschließlich zur Übertragung verwendet. Die übrigen Zielauswahlen werden bei der umgekehrten Übertragung ignoriert.

-gensrctemplate <Vorlage>

Legt die Berechnen-Vorlage zur Anwendung auf die Quellen fest. Diese Vorlage wird dann direkt vor der Synchronisierung ausgeführt, um die Prüfsummen/Signaturen zunächst auf einen aktuellen Stand zu bringen. Optional kann die Auffrischung durchgeführt werden (siehe Parameter -gensrctemplaterefresh), um nur neue/veränderte Dateien zu aktualisieren.

-gensrctemplaterefresh

Quellen lediglich auffrischen statt komplett neu zu berechnen, dabei werden nur neue/veränderte Dateien verarbeitet. Dieser Parameter gilt nur in Zusammenarbeit mit dem Parameter -gensrctemplate.

-gentemplate <Ausw> <Vorlage>

Legt die Berechnen-Vorlage (2. Wert) zur Anwendung auf die Zielauswahl (1. Wert) fest. Diese Vorlage wird dann direkt vor der Synchronisierung ausgeführt, um die Prüfsummen/Signaturen zunächst auf einen aktuellen Stand zu bringen. Optional kann die Auffrischung durchgeführt werden (siehe Parameter -gentemplaterefresh), um nur neue/veränderte Dateien zu aktualisieren.

-gentemplaterefresh

Zielauswahl lediglich auffrischen statt komplett neu zu berechnen, dabei werden nur neue/veränderte Dateien verarbeitet. Dieser Parameter gilt nur in Zusammenarbeit mit dem Parameter -gentemplate.

-gnuperdirectory

Prüfsummen-Dateien im GNU-Format pro Verzeichnis prüfen. Alle pro Verzeichnis berechneten Originaldatei-Prüfsummen werden in jeweils eine Prüfsummen-Datei gespeichert, wobei die Algorithmen mit den Parametern -md5 für MD5 usw. festgelegt werden können. Die Dateien tragen dann die mit dem Parameter -extmd5 usw. festgelegte Dateiendung sowie den mit dem Parameter -summaryfile festgelegten Namen.

Sie können zusätzlich auch GNU-Dateien pro Ziel prüfen lassen (siehe Parameter -gnupertarget).

-gnupertarget

Prüfsummen-Dateien im GNU-Format pro Ziel prüfen. Pro berechneter Originaldatei wird genau eine Prüfsummen-Datei mit einem einzigen Wert zum jeweiligen Algorithmus (z.B. -md5 für MD5) angelegt. Die Dateien tragen dann die mit dem Parameter -extmd5 usw. festgelegte Dateiendung.

Sie können zusätzlich auch GNU-Dateien pro Verzeichnis prüfen lassen (siehe Parameter -gnuperdirectory).

-ignoreregex <Wert>

Legt einen regulären Ausdruck fest, mit dem sich Dateien bei der Synchronisierung ausschließen lassen (werden nicht verarbeitet). Alternativ können Sie bestimmte Dateien mit dem Parameter -includeregex einbeziehen.

-includeregex <Wert>

Legt einen regulären Ausdruck fest, mit dem sich Dateien bei der Synchronisierung einbeziehen lassen (werden verarbeitet). Alternativ können Sie bestimmte Dateien mit dem Parameter -ignoreregex ausschließen.

-md2

Aktiviert die Erkennung von MD2-Prüfsummen zur Synchronisierung.

-md4

Aktiviert die Erkennung von MD4-Prüfsummen zur Synchronisierung.

-md5

Aktiviert die Erkennung von MD5-Prüfsummen zur Synchronisierung.

-optdigest

Optimierungs-Parameter: Dateien nicht übertragen, wenn Prüfsummen für Quelle und Ziel passen. Gilt nur dann, wenn der Parameter -transferall nicht übergeben wird.

-optfilesize

Optimierungs-Parameter: Dateien nicht übertragen, wenn die Dateigrößen von Quelle und Ziel passen. Gilt nur dann, wenn der Parameter -transferall nicht übergeben wird.

-optintermediate

Optimierungs-Parameter: Dateien nicht übertragen, wenn Zwischenprüfsummen für Quelle und Ziel passen (nur Digester-XML). Gilt nur dann, wenn der Parameter -transferall nicht übergeben wird.

-optpgpsig

Optimierungs-Parameter: Dateien nicht übertragen, wenn OpenPGP-Signaturen für Quelle und Ziel passen. Gilt nur dann, wenn der Parameter -transferall nicht übergeben wird.

-opttimestamp

Optimierungs-Parameter: Dateien nicht übertragen, wenn die Dateizeitstempel von Quelle und Ziel passen. Gilt nur dann, wenn der Parameter -transferall nicht übergeben wird.

-optxmlentryfilesize

Optimierungs-Parameter: Dateien nicht übertragen, wenn XML-Dateigrößen für Quelle und Ziel passen (Angaben in XML-Elementen). Gilt nur dann, wenn der Parameter -transferall nicht übergeben wird.

-optxmlentrytimestamp

Optimierungs-Parameter: Dateien nicht übertragen, wenn XML-Zeitstempel für Quelle und Ziel passen (Angaben in XML-Elementen). Gilt nur dann, wenn der Parameter -transferall nicht übergeben wird.

-overwrite

Aktiviert das Überschreiben existierender Prüfsummen/Signatur-Dateien auf dem Zielsystem im Zuge der Synchronisierung.

Überschriebene Prüfsummen/Signatur-Dateien lassen sich programmseitig nicht wiederherstellen, bitte sichern Sie Ihre Daten vorher durch ein Backup.

-pgppertarget

Signatur-Dateien im OpenPGP-Format pro Ziel prüfen. Pro berechneter Originaldatei wird genau eine Signatur-Datei mit einem einzigen Wert zum jeweiligen Schlüssel angelegt. Die Dateien tragen dann die mit dem Parameter -extpgp festgelegte Dateiendung.

Eine Erzeugung/Prüfung von Dateien pro Verzeichnis ist für OpenPGP-Signaturen nicht möglich.

-ripemd128

Aktiviert die Erkennung von RIPEMD-128-Prüfsummen zur Synchronisierung.

-ripemd160

Aktiviert die Erkennung von RIPEMD-160-Prüfsummen zur Synchronisierung.

-ripemd256

Aktiviert die Erkennung von RIPEMD-256-Prüfsummen zur Synchronisierung.

-ripemd320

Aktiviert die Erkennung von RIPEMD-320-Prüfsummen zur Synchronisierung.

-sha1 | sha

Aktiviert die Erkennung von SHA-1-Prüfsummen zur Synchronisierung.

-sha224

Aktiviert die Erkennung von SHA-224-Prüfsummen zur Synchronisierung.

-sha256

Aktiviert die Erkennung von SHA-256-Prüfsummen zur Synchronisierung.

-sha384

Aktiviert die Erkennung von SHA-384-Prüfsummen zur Synchronisierung.

-sha512

Aktiviert die Erkennung von SHA-512-Prüfsummen zur Synchronisierung.

-sourcetimestamp

Zeitstempel der verarbeiteten Quelldateien für Zieldateien übernehmen. Dies ist nur für GNU/BSD/OpenPGP/XML-Dateien pro Ziel möglich, nicht für die Dateien auf Verzeichnisebene (pro Verzeichnis).

-subdirectories

Aktiviert die Verarbeitung von Unterverzeichnissen für die verzeichnisbasierte Synchronisierung. Sonst werden nur die übergebenen Verzeichnisse selbst (ohne Unterverzeichnisse) verarbeitet.

-syncgnubsdtimestamp

Trust-Parameter: Prüfsummen wird am meisten vertraut, wenn GNU/BSD-Dateizeitstempel passen. Es wird jeweils diejenige Prüfsumme/Signatur zum Abgleich von Quelle und Ziel ausgewählt, die die meisten Trust-Optionen erfüllt (der am meisten vertraut wird).

-syncmapping <Wert>

Die Werte der angegebenen Synchronisieren-Zuordnung werden als Standardwerte verwendet und durch die übrigen Parameter überschrieben. Standardmäßig werden die Optionen der aktuellen Zuordnung des Synchronisieren-Fensters als Standardwerte verwendet.

-syncpgptimestamp

Trust-Parameter: Signaturen wird am meisten vertraut, wenn OpenPGP-Dateizeitstempel passen. Es wird jeweils diejenige Prüfsumme/Signatur zum Abgleich von Quelle und Ziel ausgewählt, die die meisten Trust-Optionen erfüllt (der am meisten vertraut wird).

-syncxmlentryfilesize

Trust-Parameter: Prüfsummen/Signaturen wird am meisten vertraut, wenn die Dateigrößen in den XML-Einträgen passen. Es wird jeweils diejenige Prüfsumme/Signatur zum Abgleich von Quelle und Ziel ausgewählt, die die meisten Trust-Optionen erfüllt (der am meisten vertraut wird).

-syncxmlentrytimestamp

Trust-Parameter: Prüfsummen/Signaturen wird am meisten vertraut, wenn die Dateizeitstempel in den XML-Einträgen passen. Es wird jeweils diejenige Prüfsumme/Signatur zum Abgleich von Quelle und Ziel ausgewählt, die die meisten Trust-Optionen erfüllt (der am meisten vertraut wird).

-syncxmltimestamp

Trust-Parameter: Prüfsummen wird am meisten vertraut, wenn XML-Dateizeitstempel passen. Es wird jeweils diejenige Prüfsumme/Signatur zum Abgleich von Quelle und Ziel ausgewählt, die die meisten Trust-Optionen erfüllt (der am meisten vertraut wird).

-tiger

Aktiviert die Erkennung von Tiger-Prüfsummen zur Synchronisierung.

-transferall

Alle Quellen werden übertragen, ohne dass die Ziele ausgewertet werden. Falls Sie ganz auf Nummer sicher gehen möchten, dass Quellen und Ziele identisch sind, wählen Sie bitte diese Option. Ist diese Option nicht gesetzt, können Sie eine oder mehrere der Optimierungs-Parameter setzen: -optdigest, -optfilesize, -optintermediate, -optpgpsig, -opttimestamp, -optxmlentryfilesize oder -optxmlentrytimestamp, um die Menge an Dateien zur Übertragung möglichst klein zu halten.

-verbose

Ausführlichere Ausgaben erzeugen. Hier werden insbesondere alle übergebenen Parameter und Werte als Liste zur Kontrolle ausgegeben. Für viele Einstellungen des Programms werden Standardwerte eingesetzt, wenn ein Parameter nicht übergeben wird. Diese Funktion ist sinnvoll nutzbar, wenn z.B. Vorlagen als Standardwerte verwendet werden und die verwendeten Einstellungen noch einmal vor der Ausführung zur Kontrolle aufgelistet werden sollen.

-whirlpool

Aktiviert die Erkennung von Whirlpool-Prüfsummen zur Synchronisierung.

-xmlperdirectory

Prüfsummen-Dateien im Digester XML-Format pro Verzeichnis prüfen. Alle pro Verzeichnis berechneten Originaldatei-Prüfsummen werden in jeweils eine Prüfsummen-Datei gespeichert, wobei die Algorithmen mit den Parametern -md5 für MD5 usw. festgelegt werden können. Die Dateien tragen dann die mit dem Parameter -extxml festgelegte Dateiendung sowie den mit dem Parameter -summaryfile festgelegten Namen.

Sie können zusätzlich auch XML-Dateien pro Ziel prüfen lassen (siehe Parameter -xmlpertarget).

-xmlpertarget

Prüfsummen/Signatur-Dateien im Digester XML-Format pro Ziel prüfen . Pro berechneter Originaldatei wird genau eine XML-Datei mit Werten zu den jeweiligen Algorithmen (z.B. -md5 für MD5) sowie ggf. OpenPGP-Signaturen angelegt. Die Dateien tragen dann die mit dem Parameter -extxml festgelegte Dateiendung.

Sie können zusätzlich auch XML-Dateien pro Verzeichnis prüfen lassen (siehe Parameter -xmlperdirectory).

 

Synchronisieren mit Ant

Die Digester-Software bietet die Möglichkeit, Synchronisierungen auch aus Ant Build-Skripten heraus zu starten. Prinzipiell lassen sich alle Synchronisierungen der grafischen Programm-Version auch mit Apache Ant bewerkstelligen, wodurch sich die Software auch direkt z.B. aus eigenen Build-Skripten heraus nutzen lässt.

Sie können die XML-Fragmente manuell erstellen oder die Unterstützung der grafischen Digester-Variante in Anspruch nehmen, die die erforderlichen Elemente und Attribute passend zusammenstellt. Erstellen Sie hierzu einfach einen Synchronisierungsvorgang mit Hilfe des Synchronisieren-Fensters , so als ob sie diesen dort durchführen wollten. Sind alle Einstellungen wie gewünscht, lässt sich mit der Schaltfläche mit dem Ameisensymbol unten das XML-Fragment für Ant anzeigen. Dieses können Sie einfach in eigene Build-Skripte kopieren.

Alle unterstützten Optionen können in beliebiger Reihenfolge übergeben werden, wobei die dazugehörigen Werte aber an der richtigen Stelle stehen müssen. Alle Parameter sind optional, mögliche Eingabefehler werden soweit wie möglich erkannt und automatisch kompensiert. Das Programm meldet fehlerhafte Parameter direkt und bricht ab, wenn Sie das failonerror-Element aktiviert haben.

Für die Synchronisierung aus Ant heraus stehen alle Parameter der Kommandozeilen-Variante der Digester-Software digestercli zur Verfügung, die als separate XML-Elemente eingetragen werden. Im Kopfbereich muss in Ihrem Build-Skript jeweils der Task digestercli deklariert werden. Bitte ersetzen Sie den Klassenpfad im Attribut classpath durch einen Wert passend zu Ihrer Installation. Für Web Start ist die Nutzung wie hier beschrieben leider nicht möglich.

<taskdef name="digestercli"
   classname="com.lf.digester.ant.DigesterCLITask"
   classpath="C:\Programme\digester-1.6.3\ant\digester-ant.jar"/>

Ein Beispiel-Fragment für Ant Build-Skripte sieht folgendermaßen aus, wobei ein Server-Verzeichnis mit einem lokalen Verzeichnis synchronisiert wird:

<digestercli>
   <sync />
   <optfilesize />
   <optxmlentryfilesize />
   <optxmlentrytimestamp />
   <optdigest />
   <optintermediate />
   <sourcetimestamp />
   <overwrite />
   <subdirectories />
   <syncgnubsdtimestamp />
   <syncpgptimestamp />
   <syncxmltimestamp />
   <syncxmlentryfilesize />
   <syncxmlentrytimestamp />
   <xmlperdirectory />
   <md5 />
   <sha1 />
   <sourceset>
       <gentemplate>My Sync4</gentemplate>
       <gentemplaterefresh />
       <dirset dir="C:\Temp\digester">
           <include name="cms" />
       </dirset>
   </sourceset>
   <targetset>
       <name>Targets</name>
       <url>sftp://mydomain.com:22/home/user1/public_html/.cms</url>
   </targetset>
</digestercli>

 

Weiterführende Links