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?


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?


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.


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)

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.


14

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


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

-10

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

:/bin# busybox

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


To jest całkowicie poza tematem, usuń to z odpowiedzi.
Jackie Yeh
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.