PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tail hört nach truncate auf zu arbeiten



Froschpopo
30.04.06, 22:40
einmal nächtlich gibt es ein truncate auf das mit tail -f geloggte logfile.
Blöderweise macht tail danach nichtmehr weiter... bleibt also einfach stehen.
Zu einem Programmabruch kommt es jedoch nicht. Es werden lediglich keine Zeilen mehr ausgegeben.

Weiss jemand Rat?
hab ne suse novell 9,3 distri...
die logfile ist die access_log vom apache2

zyrusthc
01.05.06, 03:30
Hallo

Habe ich das jetzt richtig verstanden?
tail -f = angefügte Daten ausgeben, während die Datei wächst.
Also wenn du tail -f access_log aufrufst , und dann mit dem Webbrowser den Webserver ansprichst , werden keine Folgemeldungen ausgegeben?

gruss Oli

Froschpopo
01.05.06, 06:27
nein falsch verstanden :)
tail -f läuft bei mir grundsätzlich rund um die Uhr. Ich leite das output in den |-pipe an eine Verarbeitungssoftware die den Traffic durch Motorengeräusche interpretiert. So kann ich anhand von Strassengeräuschen feststellen, wieviel auf dem Server los ist :). Gleichtzeitig habe ich so die Möglichkeit, ab und zu mal einen Blick auf die Requests zu werfen.
Jedoch, einmal am Tag, bleibt es einfach stehen, und zwar genau nachdem der apache2 die access_log getruncated hat.
apache2 komprimiert alle 24 Stunden den Inhalt seiner Datei und speichert ihn dann in einer anderen Datei. Anschließend wird access_log geleert.
Scheinbar kommt mein tail damit nicht zurecht, so dass ich einen kleinen interupt machen muss.
Im Grunde ist das kein Drama, ist ja nur eine Sache von 1 Sek.
Aber mich interessiert vielmehr der Grund für diesen stehenbleiben.

Ich hatte da schonmal einen Verdacht: mal angenommen tail -f würde sich immer die letzte Zeile merken, dann müsste der das programm ja im Grunde das output fortsetzen, wenn diese zeile überschritten wurde.
Damit wäre zumindestens zu erklären, dass tail -f nach meiner letzten längeren Abwesenheit über 31 Stunden noch bzw wieder lief.
Aber das ist nur eine Theorie aber die mir einzig erklärbare.
Aber vielleicht erklärt mir ja mal ein richtiger Fachmann wie es wirklich aussieht :)

tschloss
01.05.06, 06:58
Es ist vermutlich der Syslog-Daemon, der die Logs reorganisiert, nicht die Anwendung (Apache).

Es ist doch nachvollziehbar, dass es während der Umorganisation des Logs kurze Zeitfenster geben kann, in denen das File nicht gelesen werden kann, oder?

Greetz
Thomas

Froschpopo
01.05.06, 07:33
kurze zeitfenster? Es kam bisher nur einmal vor, dass er überhaupt von sic aus weitergearbeitet hat.
Normalerweise bleibt er dann stehen bis ich tail neustarte.
Das truncate hingegen dauert aber nur ein paar Sekunden.

tschloss
01.05.06, 07:46
Schon mal
tail -F
versucht?
"-F same as --follow=name --retry"



Greetz
Thomas

Froschpopo
01.05.06, 08:46
nein, aber habs jetzt mal gesetzt :) Ich meld mich dann morgen nochmal, insofern es zu einem erneuten Stillstand kommt.
Ansonsten bedanke ich mich vorerst für die Beiträge und wünsche einen schönen Start in den Mai :)

marce
01.05.06, 09:56
das andere Verhalten ist durchaus normal (wenn auch nervig)...

Froschpopo
01.05.06, 15:01
also bei suse 7.3 kam das damals nie vor!

ChandlerBing
01.05.06, 19:39
Ist bei mir auch so (Sarge bzw. Ubuntu 5.10).
Wenn die logs nachts gerotated werden, dann bleibt tail -f stehen.

Froschpopo
01.05.06, 20:30
das wäre mal ein verbesserungsvorschlag an die entwickler finde ich... aber warten wir mal ab was -F bringt

Froschpopo
04.05.06, 21:22
subba! mit -F funktioniert es jetzt seit über 30 stunden