TS: Linux: Datei vorne abschneiden

Beitrag lesen

Hello,

[•••]

Das ganze natürlich sauber mit den Prozessen synchronisiert, damit die alle immer wissen wo sie hinschreiben müssen und warten bis es wieder eine Zieldatei gibt.

Genau das gute alte TOCTTOU-Problem treibt mich da um.
Ich bin mir jetzt unsicher, ob man das Schreiben mittels Append auch kontrollieren kann. Das macht mMn das OS (Linux) schon mikromatisch (also es serialisiert die Aufträge unterschiedlicher Prozesse im Kleinsten), aber es gibt darüber hinaus keine Möglichkeit der Verzögerung.

Wenn ich jetzt die Datei sperren würde, umbenennen, den Schwanz kopieren in eine neue Datei mit dem alten Namen (sofern das innerhalb desselben Prozesses überhaupt geht), dann könnte ich den verbliebenen Rest anschließend aufteilen auf die "Old-Versionen".

Leider dauert das bei 80.000 Zeilen auch eine gewisse Zeit. Wo lasse ich in der Zwischenzeit die neuen Einträge. Da hängen dann die Prozesse solange.

Und wie macht das logrotate? Dessen Aufgabe ist ja sehr ähnlich.
Und wie machen das Spooldateien? Die werden doch auch vorne gekürzt und nicht hinten.

Wenn ich die laufende Datei einfach umbenennen würde, wann gibt das OS den alten Namen dann wieder frei? Wenn dann eine Appendanforderung käme, solange noch keine neue "Schwanzdatei" besteht, würde die ggf. automatisch angelegt werden. Das muss aber solange verhindert werden, bis die Schwanzdatei die geforderten ca. 20.000 Einträge enthält.

Glück Auf
Tom vom Berg

--
Es gibt nichts Gutes, außer man tut es!
Das Leben selbst ist der Sinn.