Wie überprüfe ich Syslog in Bash unter Linux?


89

In C protokollieren wir folgendermaßen:

syslog( LOG_INFO, "proxying %s", url );

Wie können wir unter Linux das Protokoll überprüfen?


Nicht die Funktion syslog Schreib in das Systemprotokoll? (Es sei denn, Sie sprechen über die untergeordnete Ebene für den Zugriff auf den Kernel-Nachrichtenringpuffer, aber ich bezweifle, dass dies urleine ist int.)
Cascabel

2
Dieses Q sollte auf unix.SE.com migriert werden, nicht sicher, ob es sich lohnt, es für die Aufmerksamkeit des Mods zu markieren (ich habe es markiert).
Alexander Malakhov

Antworten:


131

Wie wäre es less /var/log/syslog?


1
@kern: Welche Linux Distribution und Version benutzt du?
NPE

6
@kern: Überprüfen Sie den Inhalt Ihrer/etc/syslog.conf
NPE

26
tail -f /var/log/syslogist wirklich schön, weil es die neueste Ausgabe zeigt, wenn es in das Syslog geht. Dies kann nützlich sein, wenn Sie versuchen, Probleme live zu beheben, anstatt sich etwas anzusehen, das ausschließlich in der Vergangenheit liegt.
counterbeing

19
Es ist eigentlich /etc/rsyslog.conf für CentOs
Roman Goyenko

1
@ArunprasadRajkumar Der andere Weg wäre zu vermeiden, Nachrichten zu protokollieren, die von normalen Benutzern in Syslog gelesen werden sollen
Dmitry Grigoryev

41

Auf Fedora 19 scheint die Antwort zu sein /var/log/messages. Überprüfen /etc/rsyslog.confSie jedoch , ob es geändert wurde.


Ich habe es auf openSUSE überprüft und festgestellt, dass es auch für es gilt. Danke für das Teilen!
Silvioprog

24

Standardmäßig ist es im Systemprotokoll unter angemeldet /var/log/syslog, sodass es gelesen werden kann von:

tail -f /var/log/syslog

Wenn die Datei nicht vorhanden ist, überprüfen Sie, ob /etc/syslog.confdie Konfigurationsdatei für syslogd angezeigt wird. Beachten Sie, dass die Konfigurationsdatei unterschiedlich sein kann. Überprüfen Sie daher den laufenden Prozess, wenn eine andere Datei verwendet wird:

# ps wuax | grep syslog
root      /sbin/syslogd -f /etc/syslog-knoppix.conf

Hinweis: In einigen Distributionen (z. B. Knoppix) können alle protokollierten Nachrichten an ein anderes Terminal gesendet werden (z. B. /dev/tty12). Um darauf zuzugreifen tty12, drücken Sie z. B. Control+ Alt+ F12.

Sie können auch das lsofTool verwenden, um herauszufinden, welche Protokolldatei der syslogdProzess verwendet, z

sudo lsof -p $(pgrep syslog) | grep log$ 

Um die Testnachricht an syslogd in der Shell zu senden, können Sie Folgendes versuchen:

echo test | logger

Verwenden Sie zur Fehlerbehebung ein Trace-Tool ( straceunter Linux, dtrussunter Unix), z.

sudo strace -fp $(cat /var/run/syslogd.pid)

22

Ein sehr cooler Util ist journalctl.

Zum Beispiel, um Syslog der Konsole anzuzeigen: journalctl -t <syslog-ident>Wo <syslog-ident>ist die Identität, die Sie der Funktion openlogzum Initialisieren von Syslog gegeben haben?


14

tail -f /var/log/syslog | grep process_name Wo process_nameist der Name des Prozesses, an dem wir interessiert sind?


3

Wenn Sie Vim mögen, verfügt es über eine integrierte Syntaxhervorhebung für die Syslog-Datei, z. B. werden Fehlermeldungen rot hervorgehoben.

vi +'syntax on' /var/log/syslog

-12

auf dem Asus-Router könnte dies über erfolgen

:/bin# busybox

Es gibt auch andere Befehle im Zusammenhang mit.


Dies ist völlig unangebracht, bitte entfernen Sie es aus den Antworten.
Jackie Yeh
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.