Hallo,
ich weiss nicht genau, wie ich es anstellen soll, vielleicht könnt
ihr mir helfen:
Eine Applikation (perl) schreibt mehr oder weniger häufig Files auf
die lokale Platte.
Diese Files werden dumpf via cron/scp auf eine andere Maschine
kopiert.
Die lokalen Files werden nur in grösseren Abständen gelöscht, so das
mit der Zeit eine immer grössere
Datenmenge kopiert werden muss.
Das soll sich nun ändern. Ich will unmittelbar nach einem
erfolgreichen SCP das lokale File löschen.
Ich muss jedoch erst mal prüfen, ob das lokale File nicht gerade noch
von der Applikation geschrieben wird, bevor ich es ihr unterm Ar...
wegkopiere und lösche. Das soll mit einem kleinem Shellscript
passieren, welches in Intervallen vom Cron aufgerufen wird.
Mein Ansatz sieht so aus (pseudocode)
cd workdir;
for file in *
Schreiblock setzen
if Lock ok: kopieren
if kopieren ok: löschen
Lock entfernen
Ich weiss jetzt aber nicht:
- Wie und ob überhaupt lockt Perl ein File, welches gerade erzeugt
wird? D-H. kann mein Lock überhaupt
einen Fehler bringen, wenn das File noch in Bearbeitung ist?
- Wie verwende ich flock() in einem Script, wenn ich mehr als ein
Commdo dazu ausführen will?
Gibt es einfache (!) Alternativen zu meinem Vorgehen?
Mit freundlichen Grüßen
Jens Puruckherr