Come controllare syslog in Bash su Linux?


89

In C registriamo in questo modo:

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

In Linux come possiamo controllare il registro?


La funzione non syslog scrive nel registro di sistema? (A meno che tu non stia parlando di quello di livello inferiore per accedere al buffer circolare dei messaggi del kernel, ma dubito che urlsia un int.)
Cascabel

2
questo Q dovrebbe essere migrato su unix.SE.com, non sono sicuro che valga la pena segnalare all'attenzione del mod (ho segnalato).
Alexander Malakhov

Risposte:


132

Che ne dici less /var/log/syslog?


1
@kern: Quale distribuzione e versione di Linux stai usando?
NPE

6
@kern: controlla i contenuti del tuo/etc/syslog.conf
NPE

27
tail -f /var/log/syslogè davvero carino perché mostra l'output più recente mentre entra nel syslog. Può essere utile se stai cercando di risolvere qualcosa dal vivo, piuttosto che guardare a qualcosa che è strettamente nel passato.
counterbeing

19
in realtà è /etc/rsyslog.conf per CentOs
Roman Goyenko

1
@ArunprasadRajkumar L'altro modo sarebbe evitare di registrare i messaggi destinati ad essere letti da utenti normali su syslog
Dmitry Grigoryev

41

Su Fedora 19, sembra che la risposta sia /var/log/messages. Anche /etc/rsyslog.confse controlla se è stato modificato.


L'ho controllato su openSUSE e ho notato che si applica anche ad esso. Grazie per la condivisione!
silvioprog

25

Per impostazione predefinita è registrato nel registro di sistema in /var/log/syslog, quindi può essere letto da:

tail -f /var/log/syslog

Se il file non esiste, controlla /etc/syslog.confper vedere il file di configurazione per syslogd. Tieni presente che il file di configurazione potrebbe essere diverso, quindi controlla il processo in esecuzione se utilizza un file diverso:

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

Nota: in alcune distribuzioni (come Knoppix) tutti i messaggi registrati potrebbero essere inviati a terminali diversi (ad es. /dev/tty12), Quindi per accedere ad es. tty12Prova a premere Control+ Alt+ F12.

È inoltre possibile utilizzare lo lsofstrumento per scoprire quale file di registro syslogdsta utilizzando il processo, ad es

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

Per inviare il messaggio di prova a syslogd nella shell, puoi provare:

echo test | logger

Per la risoluzione dei problemi, utilizzare uno strumento di traccia ( stracesu Linux, dtrusssu Unix), ad esempio:

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

22

Un'utilità molto interessante è journalctl.

Ad esempio, per mostrare syslog alla console:, journalctl -t <syslog-ident>dov'è l' <syslog-ident>identità che hai dato alla funzione openlogper inizializzare syslog.


Se si utilizza syslog-ngcon il servizio systemd, è possibile visualizzare syslog conjournalctl --unit=syslog-ng@default.service
smac89

14

tail -f /var/log/syslog | grep process_name dov'è process_nameil nome del processo a cui siamo interessati


3

Se ti piace Vim, ha un'evidenziazione della sintassi incorporata per il file syslog, ad esempio evidenzierà i messaggi di errore in rosso.

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

-12

sul router Asus potrebbe essere fatto tramite

:/bin# busybox

ci sono anche altri comandi relativi a.


Questo è totalmente fuori tema, rimuovilo dalle risposte.
Jackie Yeh
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.