Problem nach kopieren auf Server
Hallo zusammen,
ich habe auf einigen Clients batch's laufen zum kopieren von Dateien. Diese werden von einem Programm am Ende der Ausführung erstellt und übertragen das Ergebnis der Arbeit im Programm auf einen Server. Dabei handelt es sich um ASCII-Dateien von <10 kb bis maximal etwa 500kb. Die Dateien werden einzeln erstellt und übertragen.
Auf dem Server werden die Dateien zeitgesteuert weiterverarbeitet.
Bisher habe ich im Programm ein ftp-script erstellt und durch die batch ausgeführt. Da lief alles ordentlich.
Kürzlich habe ich den Server als Netzlaufwerk auf den Clients angebunden und übertrage die Dateien per copy.
Seitdem passiert es ab und zu, dass mir der Server bei der Weiterverarbeitung Dateien ohne relevanten Inhalt meldet.
Läuft bim copy im Dateisystem etwas anders als beim ftp? Ich könnte mir vorstellen, dass die Datei "noch nicht komplett" auf dem Server liegt, wenn dieser mit der Weiterverarbeitung beginnen will. Vielleicht wird die Datei beim ftp irgendwie geblockt und beim copy nicht?
Falls das so ist, wie kann man so etwas beim copy blocken? Oder müsste ich mir eine Inhaltsliste vom Verzeichnis erstellen und die Daten zeitverzögert weiterverarbeiten?
ich habe auf einigen Clients batch's laufen zum kopieren von Dateien. Diese werden von einem Programm am Ende der Ausführung erstellt und übertragen das Ergebnis der Arbeit im Programm auf einen Server. Dabei handelt es sich um ASCII-Dateien von <10 kb bis maximal etwa 500kb. Die Dateien werden einzeln erstellt und übertragen.
Auf dem Server werden die Dateien zeitgesteuert weiterverarbeitet.
Bisher habe ich im Programm ein ftp-script erstellt und durch die batch ausgeführt. Da lief alles ordentlich.
Kürzlich habe ich den Server als Netzlaufwerk auf den Clients angebunden und übertrage die Dateien per copy.
Seitdem passiert es ab und zu, dass mir der Server bei der Weiterverarbeitung Dateien ohne relevanten Inhalt meldet.
Läuft bim copy im Dateisystem etwas anders als beim ftp? Ich könnte mir vorstellen, dass die Datei "noch nicht komplett" auf dem Server liegt, wenn dieser mit der Weiterverarbeitung beginnen will. Vielleicht wird die Datei beim ftp irgendwie geblockt und beim copy nicht?
Falls das so ist, wie kann man so etwas beim copy blocken? Oder müsste ich mir eine Inhaltsliste vom Verzeichnis erstellen und die Daten zeitverzögert weiterverarbeiten?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 227286
Url: https://administrator.de/forum/problem-nach-kopieren-auf-server-227286.html
Ausgedruckt am: 09.01.2025 um 16:01 Uhr
4 Kommentare
Neuester Kommentar
Hi,
Für das Problem, dass die Datei weiterverarbeitet wird, bevor sie komplett hochgeladen ist gibts eine einfache Lösung.
Am Client:
1) Datei Hochladen
2) kleine Kontrolldatei (kann auch leer sein) erstellen und hochladen
Am Server:
1) Skript nur dann anwerfen, wenn Kontrolldatei existiert (dann ist nämlich die wichtige Datei auf jeden Fall hochgeladen)
2) Nach der Abarbeitung Kontrolldatei löschen.
Der Hintergrund: Vermutlich hat dein ftp-script die Datei unter einen temporären Namen hochgeladen und erst auf den richtigen Namen geändert, als schon der gesamte Inhalt übertragen war. Copy legt vermutlich zuerst die Datei unter dem Zielnamen an und schreibt dann kontinuierlich drauf.
mfg
Cthluhu
Für das Problem, dass die Datei weiterverarbeitet wird, bevor sie komplett hochgeladen ist gibts eine einfache Lösung.
Am Client:
1) Datei Hochladen
2) kleine Kontrolldatei (kann auch leer sein) erstellen und hochladen
Am Server:
1) Skript nur dann anwerfen, wenn Kontrolldatei existiert (dann ist nämlich die wichtige Datei auf jeden Fall hochgeladen)
2) Nach der Abarbeitung Kontrolldatei löschen.
Der Hintergrund: Vermutlich hat dein ftp-script die Datei unter einen temporären Namen hochgeladen und erst auf den richtigen Namen geändert, als schon der gesamte Inhalt übertragen war. Copy legt vermutlich zuerst die Datei unter dem Zielnamen an und schreibt dann kontinuierlich drauf.
mfg
Cthluhu
Hi,
Das mit der Wartezeit würde ich nochmal überdenken. Du gehts davon aus, dass das vollständige Übertragen weniger als x Sekunden dauert. Wenn das Netzwerk/Internet mal Schluckauf hat kann es schon mal länger dauern bis die Dateien fertig werden. Dann ist die Wartezeit eventuell wieder zu kurz und du stehst vor dem selben Problem.
Ich denke nicht, dass im FTP-Protokoll festgelegt ist, wie die Datei am Zielsystem erzeugt wird. Am einfachst ist, du probiert es aus. Dazu würde ich größer Dateien verwenden, welche etwas länger brauchen zum Übertragen (sonst hast du eventuell zu wenig Zeit zum beobachten).
mfg
Cthluhu
Das mit der Wartezeit würde ich nochmal überdenken. Du gehts davon aus, dass das vollständige Übertragen weniger als x Sekunden dauert. Wenn das Netzwerk/Internet mal Schluckauf hat kann es schon mal länger dauern bis die Dateien fertig werden. Dann ist die Wartezeit eventuell wieder zu kurz und du stehst vor dem selben Problem.
Ich denke nicht, dass im FTP-Protokoll festgelegt ist, wie die Datei am Zielsystem erzeugt wird. Am einfachst ist, du probiert es aus. Dazu würde ich größer Dateien verwenden, welche etwas länger brauchen zum Übertragen (sonst hast du eventuell zu wenig Zeit zum beobachten).
mfg
Cthluhu