Hallo,
ich hab eine Applikation, die unter anderem Dateien aus definierten Verzeichnissen einliest.
In diese Verzeichnisse können die Dateien auf verschiedensten Wegen gelangen (händisch kopieren, scripte usw.)
Nun möchte ich sicherstellen, das - wenn ich die Dateien einlese - diese schon komplett in das Verzeichnis geschrieben wurde, so das ich nicht eine Datei einlese die noch mitten im Kopiervorgang ist.
Wie stell ich das am Besten an?
2 Ideen hatte ich bisher:
1. Da meine Applikation nur auf Linux-Kisten laufen wird, dachte ich daran mit "lsof" zu prüfen, ob irgendein anderer Prozeß auf die Datei zugreift.
2. Nach einem definierten Intervall die Grösse der Datei prüfen. Hat sie sich nicht geändert wäre das ein (unsicheres) Indiz dafür das sie fertig geschrieben wurde.
Ich finde beide Möglichkeiten nicht so toll, fällt jemand eine bessere Möglichkeit ein?
ich hab eine Applikation, die unter anderem Dateien aus definierten Verzeichnissen einliest.
In diese Verzeichnisse können die Dateien auf verschiedensten Wegen gelangen (händisch kopieren, scripte usw.)
Nun möchte ich sicherstellen, das - wenn ich die Dateien einlese - diese schon komplett in das Verzeichnis geschrieben wurde, so das ich nicht eine Datei einlese die noch mitten im Kopiervorgang ist.
Wie stell ich das am Besten an?
2 Ideen hatte ich bisher:
1. Da meine Applikation nur auf Linux-Kisten laufen wird, dachte ich daran mit "lsof" zu prüfen, ob irgendein anderer Prozeß auf die Datei zugreift.
2. Nach einem definierten Intervall die Grösse der Datei prüfen. Hat sie sich nicht geändert wäre das ein (unsicheres) Indiz dafür das sie fertig geschrieben wurde.
Ich finde beide Möglichkeiten nicht so toll, fällt jemand eine bessere Möglichkeit ein?