Mein JBoss-Anwendungsserver generiert einige ziemlich große Protokolldateien, oft zwischen 8 und 10 GB groß. Wie kann ich diese Protokolldateien auf meinem Redhat-Linux-Server anzeigen?
Antwort1
Versuchen Sie es mit dem Split-Befehl.
split --bytes=100M <logfile> <logfile>
Und ja, rotieren Sie Ihre Protokolldateien häufiger. Es wäre ein abscheuliches Verbrechen, dies nicht zu tun.
Antwort2
Normalerweise verwende ich less
es, um Protokolldateien anzuzeigen. Es kann riesige Protokolldateien (mehrere Gigabyte) anzeigen. less
kann auch komprimierte Protokolldateien (mit der Endung .gz
) anzeigen.
Sie können auch grep
nach bestimmten Mustern filtern.
Antwort3
Sie können auch einen „Kopf“ verwenden, um die ersten Zeilen aufzulisten, oder einen „Schwanz“, um das Ende der Datei aufzulisten. Wenn Sie nach dem „Kopf“ oder „Schwanz“ eine Zahl anhängen, wird diese Zeilenanzahl angezeigt.
Alan
Antwort4
Wir haben hier ein ähnliches Problem (große Logdateien, allerdings nicht JBoss) und ich kann nur sagen: „grep ist dein Freund“. Ich nehme an, deine Logdateien sehen ungefähr so aus:
Dec 27 08:14:35 hostname kernel: bnx2: eth1 NIC Copper Link is Up, 1000 Mbps full duplex
Dec 27 08:14:35 hostname kernel: eth2: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:35 hostname kernel: eth3: Link is Up 1000 Mbps Full Duplex, Flow Control: None
Dec 27 08:14:36 hostname pcscd: hotplug_libusb.c:402:HPEstablishUSBNotifications() Driver ifd-egate.bundle does not support IFD_GENERATE_HOTPLUG. Using active polling instead.
(diese werden aus einer Datei /var/log/messages gezogen, aber die Idee ist, dass jedem Eintrag ein Zeitstempel vorangestellt wird).
Da Ihre Protokolldatei mit Zeitstempeln gefüllt ist, gehe ich ungefähr wie folgt vor:
grep '^`date "+%b %d"` 08:14' /mein/log/datei > /tmp/814amLog.txt
Das ist eigentlich nur das Suchen nach dem heutigen Zeitstempel, d. h.
grep "^27. Dez. 08:14" /mein/log/datei > /tmp/814amLog.txt
Dann verwende ich less oder vim -R für die Datei 814amLog.txt. Die Idee ist, sie in mundgerechte Stücke zu zerlegen, die Sie interessieren.
Der als erste Antwort angegebene Split-Befehl ist verwendbar, liefert meiner Erfahrung nach aber eher willkürliche Ergebnisse. Normalerweise suche ich nach etwas, das „ungefähr zu dieser Zeit“ passiert ist. Daher wird Grep nach Datum und Uhrzeit häufiger verwendet.
Sie können einen Cron-Job skripten, um Ihre Protokolldateien nachts zu durchsuchen und an einem geeigneten Ort zu speichern, sodass Sie dies nicht ad hoc tun müssen. Ich empfehle außerdem dringend, einen Job zum GZIP-Komprimieren von Protokolldateien zu erstellen, die älter als etwa einen Tag sind. Sie werden erstaunt sein, wie viel Speicherplatz Sie sparen.