• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] Auswerten ob Datei in Benutzung

Hey

Ich benenne eine Datei auf einem FTP per cron um, bzw kopiere diese.
Wie kann ich den Fall abfangen, das das umbenennen der Datei erst erfolgt wenn diese vollständig hochgeladen ist. Geht das mit "test" . Habe aber in der man nix gefunden.

By Huflatisch
 

ninguno

Member
ich versteh dein problem nicht ganz. jemand lädt eine datei auf deinen ftp server hoch und du benennst sie dann um? wenn das so ist dann wärs wohl besser der andere benennt sie selbst um nachdem er sie hochgeladen hat. dann ist klar, das hochladen ist fertig, sobald die datei umbenannt ist.
 
OP
H

Huflatisch

Hacker
Hey

Das ist nun mal so. Der Kunde meine Kundens läd automatisch EDI txt Datein im Stundentakt (tagsüber) auf einen ftp. Leider kriegt dieser es nicht in die Reihe diese Dateien mit einem Datumstempel zu versehen. So wird diese Datei jede Stunde überschrieben. Falls jetzt mein kunde es nicht schafft (aus was für einem Grund auch immer) diese datei in einer Stunde abzuholen ist diese definitiv weg (überschrieben mit einer neuen). Dieser Ablauf ist nicht zu beeinflussen. Ich hoffe deine Neugier ist damit erstmal zufriedengestellt. :wink:

... und wie könnte ich das "Problem" lösen

By Huflatisch

PS: Falls dich noch interessiert was EDI ist.
http://de.wikipedia.org/wiki/Electronic_Data_Interchange
 

endor

Member
wenn es stuendlich ist und du die zeit weisst, kannst du es ja kurz davor machen. wenn die dateien immer gleich gross sind kannst du auch auf groesse testen. ansonsten kann man vielleich tmit dem kunden reden und ihm sagen wie man den dateien einen zeitstempel aufdrueckt. vielleicht erstellt der ftp daemon auch nen neuen prozess wenn jemand etwas hochlaed und du koenntest darauf testen ob der noch existiert. du koenntest auch ne schleife per sleep machen und testen ob die datei nach ein paar sekunden groesser geworden ist.
 
OP
H

Huflatisch

Hacker
Hey

oki, Danke
mir ist auch gerade lsof übern weg gelaufen. Müsste da einfach den Rückgabewert auswerten. Mal sehen ob ich hingriege

Müsste so funzen
lsof datei > /dev/null
if [ "$?" = "1" ]; then
echo Datei ist nicht geöffnet
else
echo Offene Datei
fi

By Huflatisch

PS @ Endor
dieses Problem habe ich schon per Script gelöst (ich vergleiche das Dateidatum bis auf die Sekunde mit einer tmp Referenzdatei). Mir gings nur noch darum ob die Datei geöffnet ist.
 
Oben