Jak sprawdzić syslog w Bash w systemie Linux?

86

W C logujemy się w ten sposób:

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

W Linuksie jak możemy sprawdzić log?

kern
źródło
Czy funkcja nie syslog zapisuje w dzienniku systemowym? (Chyba że mówisz o niższym poziomie dostępu do bufora pierścienia wiadomości jądra, ale wątpię, czy urljest int.)
Cascabel
2
ten Q powinien zostać przeniesiony do unix.SE.com, nie jestem pewien, czy warto oflagować, aby zwrócić na siebie uwagę moda (oflagowałem).
Alexander Malakhov

Odpowiedzi:

128

A co powiesz less /var/log/syslog?

NPE
źródło
1
@kern: Której dystrybucji i wersji Linuksa używasz?
NPE
6
@kern: Sprawdź zawartość swojego/etc/syslog.conf
NPE
25
tail -f /var/log/syslogjest naprawdę fajny, ponieważ pokazuje najnowsze dane wyjściowe, które trafiają do syslog. Może to być przydatne, jeśli próbujesz rozwiązać coś na żywo, zamiast patrzeć na coś, co jest ściśle z przeszłości.
przeciwstawienie się
16
to właściwie /etc/rsyslog.conf dla CentOs
Roman Goyenko
1
@ArunprasadRajkumar Innym sposobem byłoby uniknięcie rejestrowania wiadomości przeznaczonych do czytania przez zwykłych użytkowników na syslog
Dmitry Grigoryev
41

W Fedorze 19 wydaje się, że odpowiedź brzmi /var/log/messages. Chociaż sprawdź, /etc/rsyslog.confczy zostało zmienione.

Hackonteur
źródło
Sprawdziłem to w openSUSE i zauważyłem, że dotyczy to również. Dzięki za udostępnienie!
silvioprog
23

Domyślnie jest zalogowany do dziennika systemowego /var/log/syslog, więc może być odczytany przez:

tail -f /var/log/syslog

Jeśli plik nie istnieje, sprawdź /etc/syslog.confplik konfiguracyjny syslogd. Zwróć uwagę, że plik konfiguracyjny może być inny, więc sprawdź uruchomiony proces, jeśli używa innego pliku:

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

Uwaga: W niektórych dystrybucjach (takich jak Knoppix) wszystkie zarejestrowane wiadomości mogą być wysyłane do innego terminala (np. /dev/tty12), Więc aby uzyskać do nich dostęp, na przykład tty12spróbuj nacisnąć Control+ Alt+ F12.

Możesz również użyć lsofnarzędzia, aby dowiedzieć się, którego pliku dziennika syslogdużywa proces, np

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

Aby wysłać wiadomość testową do syslogd w powłoce, możesz spróbować:

echo test | logger

Do rozwiązywania problemów użyj narzędzia do śledzenia ( stracew systemie Linux, w systemie dtrussUnix), np .:

sudo strace -fp $(cat /var/run/syslogd.pid)
kenorb
źródło
22

Bardzo fajnym narzędziem jest journalctl.

Na przykład, aby pokazać syslog do console:, journalctl -t <syslog-ident>gdzie <syslog-ident>jest tożsamość nadana funkcji openlogdo zainicjowania syslog.

nhnghia
źródło
14

tail -f /var/log/syslog | grep process_name gdzie process_namejest nazwa procesu, który nas interesuje

kshiteejm
źródło
2

Jeśli lubisz Vima, ma on wbudowane podświetlanie składni dla pliku syslog, np. Podświetla komunikaty błędów na czerwono.

vi +'syntax on' /var/log/syslog
Andy Carlson
źródło
-10

na routerze Asus można to zrobić za pośrednictwem

:/bin# busybox

istnieją również inne polecenia związane z.

NiceTIP
źródło
To jest całkowicie poza tematem, usuń to z odpowiedzi.
Jackie Yeh