Ausgabe in Datei umleiten und gleichzeigig eine max. Größe der Datei definieren?

T

topo

Grünschnabel
Hallo Zusammen,

ich möchte eine Applikation starten und deren Ausgaben in eine Datei umleiten. Kenn ich und geht ja auch ganz einfach:

# app > logfile.txt

Um aber eine Absicherung zu haben, dass mir der Speicher nicht bis Anschlag volläuft, würde ich mich hier gerne absichern und irgendwie eine max. Dateigröße festlegen. Bei mir läuft ein ganz einfaches embedded Linux, welches nicht den Umfang beispielsweise von Ubuntu mit sich bringt. Ich brauche also eine kleine und einfache Lösung mit den Standardmitteln von Linux. Hat jemand eine Idee, wie ich dies machen könnte?

Da mir nichts direktes eingefallen ist, habe mir schon folgendes überlegt:
- Umleitung in ein anderes Shell - Skript, welches die Ausgaben verarbeitet und gleichzeitig die Dateigröße überprüft.
- Anderes Skript, das die Dateigröße testet und evtl. eingreift.

Aber eine direkte Lösung habe ich nicht gefunden. Irgendwelche Tipps / Ideen ?

Vielen Dank schon im Voraus für Eure Hilfe und Eure Mühen.

Viele Grüße,
Thomas
 
Schau Dir mal den Befehl 'ulimit' an - den gibt es fuer die meisten Shells (bash, zsh, ...). Aus 'man bash':
Code:
ulimit [-HSTabcdefilmnpqrstuvx [limit]]
-f     The maximum size of files written by the shell and its children
Du solltest nur sicherstellen, dass die 'app' in ihrer eigenen bash laeuft, damit nicht andere Prozesse von der Grenze betroffen sind.
 
Danke für die Infos und Eure Hilfe, das hilft mir schon einmal sehr weiter. Ich schau mir beide Vorschläge an und entscheide, was am besten passt.

DANKE :)
 
ulimit sorgt dafür, dass der Prozess beendet wird, wenn er in das Limit rennt. Man benötigt dann also einen zusätzlichen Watchdog, der den Prozess neustartet, wenn er in sein Limit gerannt ist.
 
Zurück
Oben