tomtombon
Goto Top

Robocopy Move Job mit wechselndem Log

Moin Moin,

Schwerer Titel face-sad

Hintergrund meiner Frage ist wie Ich einen Robocopy MOVe Job mache mit wechselnd benamten Log.

Auch nicht besser diese längere Kurzfassung.

Das konkrete Problem ist das folgende:
Wir haben hier unterschiedliche Programme die Daten liefern (Scanner) in einen Hotfolder.
Dann haben wir andere Programme die diese Daten weiter bearbeiten.

Das Problem ist in letzter Zeit immer mal wieder das die Systeme ins Stolpern geraten.

Die Ursache:
Die Dateien befinden sich noch im Zugriff eines anderen Programmes.
Des Scanners..
Und das bringt das weiter verarbeitende Programm aus dem Konzept.

Die Lösung:
Wir erstellen 2 Ordner:
C:\Scan-In
und
C:\Scan-Out

Wie der Name schon vermuten lässt scannen wir in den IN Ordner rein,
lassen dann über einen Robocopy Befehl die Daten verschieben nach OUT.
Und dort bedient sich die Weiterverarbeitung.
Dies lassen wir über den Taskscheduler ohne Anmeldung bei jedem Start ausführen.

Klappt wunderbar.


Jetzt meine Frage, Problem wäre fast zuviel gesagt.

Ich schreibe die Arbeiten in ein Log rein.
Zwar sehr ausführlich, aber das Log kann man regelmäßig löschen.
Und wenn man Probleme hat..
face-smile
Nur.
Ich habe es bisher nicht hinbekommen das er in "regelmäßigen Abständen" ein neues Log schreibt.
Das kann auch täglich sein, ein bißchen Arbeit bei der Fehler Suche ist ja okay.

So wie wir es jetzt haben schreibt er alles immer in das gleiche Log rein.
Und ein regelmäßiges verschieben samt umbennung ist nicht möglich da das Log im zugriff ist...

Hat jemand eine Idee?
Ich bin nebenbei immer wieder am suchen.
Der Autor hier ist ganz gut:
https://adamtheautomator.com/robocopy-the-ultimate/


PS:
Keine windows externen Tools face-smile

Danke

TomTom


Die Befehlszeile:
robocopy c:\scan-in c:\scan-out /MOV /MOT:5 /V /TS /FP /LOG+:c:\tmp-data\MOVE_to_scan-out.log


Für weitere Verbesserungsvorschläge bin Ich offen.
Da Weihnachtszeit ist weiß Ich nicht wie schnell Ich reagieren kann.
Nächstes Jahr ist aber auch immer früh genug face-smile


Vielen Dank noch einmal.

Content-ID: 527332

Url: https://administrator.de/contentid/527332

Ausgedruckt am: 21.11.2024 um 13:11 Uhr

BassFishFox
BassFishFox 19.12.2019 um 17:08:55 Uhr
Goto Top
Hi,

Frisch getippt am Telefon.

Warum gibst Du fuer die Erstellung des Logfiles nicht eine Datumsvariable mit.
Dann hast Du pro Job ein Logfile.

BFF
erikro
erikro 19.12.2019 um 17:15:14 Uhr
Goto Top
Moin,

auf der Powershell:

robocopy c:\scan-in c:\scan-out /MOV /MOT:5 /V /TS /FP /LOG+:c:\tmp-data\$(get-date -format "yyMMdd")_MOVE_to_scan-out.log  

Und schon hast Du jeden Tag ein neues Log mit führendem Datum.

hth

Erik
TomTomBon
TomTomBon 19.12.2019 um 17:23:57 Uhr
Goto Top
Ebenfalls Moin,

Mit der Powershell habe Ich noch nicht ausprobiert, bin Ich auch erst am rantasten (an die PS) da "Projekte" die Ich damit hier anzugehen versuche dies so nicht gestatten.

Mit der Datumsvariable hatte Ich auch gedacht.
Aber er erstellt die Variable ja NUR beim ersten Start.
Und bei jedem neuen WIN Start...
Nur, wie oft werden Server gestartet ?
face-smile

Danke schon mal.
Ich versuche die Tipps zuhause :-p
BassFishFox
BassFishFox 19.12.2019 aktualisiert um 17:31:43 Uhr
Goto Top
Eigentlich wird das bei jedem Aufruf von Robocopy "gelesen". face-wink

Also pack in da die Stunden und Minuten noch rein wenn Robocopy oefter am Tag rennt.

BFF
TK1987
TK1987 20.12.2019 aktualisiert um 08:30:50 Uhr
Goto Top
Führendes Datum geht doch auch mit Batch ganz leicht:
robocopy c:\scan-in c:\scan-out /MOV /MOT:5 /V /TS /FP /LOG+:c:\tmp-data\%date:~6,4%-%date:~3,2%-%date:~0,2%_MOVE_to_scan-out.log
erikro
erikro 20.12.2019 um 10:33:27 Uhr
Goto Top
Moin,

Zitat von @TomTomBon:

Mit der Datumsvariable hatte Ich auch gedacht.
Aber er erstellt die Variable ja NUR beim ersten Start.
Und bei jedem neuen WIN Start...
Nur, wie oft werden Server gestartet ?

Nee, get-date gibt immer die vollständige Systemzeit zurück. Deshalb ist auch der Parameter -format notwendig, um nur das Datum zu bekommen. @TK1987 hat Dir ja auch die Variante mit reinem Batch gepostet. Wie hässlich! face-wink Deshalb benutze ich Batches nicht mehr. Viel zu kompliziert und unübersichtlich.

Liebe Grüße

Erik
rubberman
Lösung rubberman 20.12.2019 um 12:52:49 Uhr
Goto Top
Technisch gesehen ist das weder mit PS oder Batch ein Problem. Aber ich plaudere mal aus dem Nähkästchen. Unser ERP System erzeugt bei bestimmten Transaktionen Textdateien die wir weiterverarbeiten. Ein Job rennt also alle paar Sekunden drüber und holt sich die neuen Dateien. Problem am Anfang war, dass das ERP die Dateien erstellt hat und ca. 1-2 Sekunden gebraucht hat bis die Daten fertig geschrieben waren. Heißt, der Job hat in unregelmäßigen Abständen eine Datei erwischt die korrupt war, da sie noch in Bearbeitung war. Wir haben das Ganze dann so gebaut, dass der Job die Dateien schiebt, die beim vorherigen Lauf gefunden wurden. Beim aktuellen Lauf sammelt er nur die Dateinamen die nach dem Verschieben übrig bleiben um sie beim nächsten Lauf abzuarbeiten.

tl;dr Wenn die Dateien gelockt sind, solange sie noch in Bearbeitung sind, würde es keine Probleme geben. Ansonsten ist es nur ein Frage der Zeit dass Robocopy eine korrupte Datei verschiebt.

Steffen
TomTomBon
TomTomBon 22.12.2019 um 23:59:20 Uhr
Goto Top
Moin Moin,

Ich lebe derzeit recht abstinent :-P
Sogar mein Handy mag mich nicht mehr.
Der lässt mich keine Eingabe beim Anmelden machen..
Jetzt bin Ich auf mein altes Q10 gegangen.
Dat läuft.
Ob auch wenn es unterm auto war weiß ich nicht, aber Ich glaube...

Egal.

Das hört sich nach gut Arbeit an.
Und bei so etwas ist es trivial wenn man es schon gemacht hat / das Problem samt Weg kennt.
Wie das Ei des Kolumbus.

Ich versuche mal eine Kiste zu erreichen die arbeitet und entsprechend protokollieren kann face-smile

Danke schon mal an alle und frohes Fest face-smile
Wenn auch hier in HH ohne Schnee.

Erholsame Tage.

Tom