SOG-Helpcenter Logo SOG Business - Software

hhtdir - Verschieben von Dateien eines Verzeichnisses per FTP


 

Beschreibung


Das Programm hhtdir stellt eine Möglichkeit dar, Dateien eines ganzes Verzeichnisses per FTP-Protokoll auf einen anderen Server zu verschieben.

Dabei wird davon ausgegangen, dass die Dateien auf dem Ziel verarbeitet, und dabei gelöscht werden.

Der Verschiebevorgang wird durch diverse Kontrollen so abgesichert, dass keine Datei verloren gehen kann.
Entsteht eine einmal auf das Ziel verschobene Datei in der Quelle erneut, wird sie solange nicht erneut auf das Ziel verschoben, bis die zuvor verschobene Datei auf dem Ziel verarbeitet und gelöscht wurde.

Um zu prüfen, ob die hhtdir-Systematik mit dem gewüschten ZielServer funktioniert, sollte anfangs immer mit "verfiy" gearbeitet werden!

Aufruf



    hhtdir [-nopassv] [-timeout s] [-nox] [-noverify] [-maxrpt n]
           [-external1] [-external2] [-singlefile] [-tempfilenamemask Maske]
           Protokolldatei Quellverzeichnis ZielServer ZielVerzeichnis ZielBenutzer ZielPasswort
           [MaximaleAnzahlVersuche] [DateiMask] [Verify]

Parameter

 

 

-nopassv

Umschaltug auf aktives FTP.

-timeout s

Anzahl Sekunden, nach denen ein Timeout ausgelöst werden soll. Initialwert: 30

-nox

Keine Sonderbehandlung für bestimmte Server. (z.B. Dakosy: Aktive Ftp und // vor dem Verzeichnisnamen)

-noverify

Keinen Verify durchführen. Ist diese Option angegebenm wird damit der "Verify" Parameter übersteuert.

-maxrpt n

Anzahl Wiederholungen bei Übertragunsgfehlern. Ist diese Option angegeben, wird damit der "MaximaleAnzahlVersuche" Parameter übersteuert.

-external1

Startet hhtdir als externen Prozess. Wiederholungen werden durch erneutes Starten eines externen hhtdir durchgeführt.

-external2

Startet sogftp als externen Prozess für jede einzelne FTP Aktion. Damit wird wirklich für jede FTP-Aktion ein eigener Prozess gestartet!

-singlefile

Pro Durchlauf wird nur genau eine Datei bearbeitet. sogftp beendet sich mit Fehler, falls noch weitere Dateien zur Übertragung bereit stehen.

-tempfilenamemask Maske

Vorgabe des temporären Dateinamens auf dem Zielserver. Initialwert= ".{0}.tmp"

Protokolldatei

Protokolldatei für Status und Fehlermeldungen.

Quellverzeichnis

Verzeichnis auf dem aktuellen Rechner, dessen Inhalt übertragen werden soll.

ZielServer

Rechnername des Zielsystems.

ZielVerzeichnis

FTP-Verzeichnis auf dem Zielsystem.

ZielBenutzer

Benutzername für FTP-Anmeldung.

ZielPasswort

Kennwort für FTP-Anmeldung

MaximaleAnzahlVersuche

Wird nicht mehr verwendet

Dateimaske

Maske zur Definition, welche Dateien übertragen werden sollen. Initialwert=*.*

Verify

0=Kein Verify, 1=Verify. Initialwert=1

Genauer Ablauf


- Datei "lock.tmp" wird im Quellverzeichnis angelegt und geschützt.
- Pro Quelldatei die nicht die Endung ".tmp" aufweisst:
- Der Transfername wir gebildet. Dies ist der Dateiname + ".tra" falls die Datei nicht schon ".tra" heißt.
- - Hieß die Datei nicht schon zuvor ".tra" und existiert der so gebildete Dateiname bereits, wird der Transfer zurückgestellt.
- Es wird geprüft, ob das Zielverzeichnis auf dem Zielserver existiert.
- Es wird in das Zielverzeichnis gewechselt.
- Es wird geprüft, ob die Zieldatei bereits existiert. Wenn ja, wird der Vorgang für die aktuelle Datei abgebrochen.
- Der ZielCopyName wird gebildet. Dieser lautet ".Dateiname.tmp".
- Es wird geprüft, ob die ZielCopyName auf dem Ziel existiert. Wenn ja, wird der diese Datei auf dem Ziel gelöscht.
- Ggf. wird die Datei nun in den Transfernamen umbenannt.
- Prüfen ob die Transferdatei exclusiv geöffnet werden kann.
- Die Datei wird auf den ZielCopyNamen hochgeladen.
- Prüfen ob ZielCopyName nun im Zielverzeichnis vorhanden ist.
- Wenn mit Verify gearbeitet wird:
- - ZielCopyName herunterladen in eine TempDatei.
- - TempDatei mit Transfername-Datei vergleichen.
- - TempDatei löschen.
- ZielCopyName in ZielDateiNamen umbenennen.
- Transfername-Datei lokal löschen.

Fehlermeldungen

 

 

Datei .XXX.tmp konnte nicht wiedergefunden werden!

Der Fehler tritt auf, wenn hhtdir die zu übertragenden Datei auf das Ziel kopiert hat und dann eine Auflistung des Zielverzeichnisses durchführt um zum einen festzustellen, ob die Datei auch wirklich angekommen ist, zum anderen sicherzustellen, dass das Auflisten von Dateien korrekt funktioniert, was für den Gesamtablauf von hhtdir unverzichtbar ist.
Ursach des Problems kann sein, dass bereits die fertig übertragene ".tmp" Datei auf dem Ziel verarbeitet wurde. Das darf nicht passieren! Die Übertragungsdateien dürfen nicht vom Zielsystem angefasst werden, bis sie ihren endgültigen Namen bekommen haben.
Alternativ könnte es Probleme beim Auflisten von Verzeichnissen geben. In diesem Fall kann versucht werden, dass Problem mit Hilfe des Programms "sogftp" zu analysieren und einzugrenzen.