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