如何检查系统日志bash?

在c中我们用这种方式logging:

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

在linux中我们如何检查日志?

less /var/log/syslog

在Fedora 19上,看起来答案是/var/log/messages 。 虽然检查/etc/rsyslog.conf是否已被更改。

tail -f /var/log/syslog | grep process_name tail -f /var/log/syslog | grep process_name其中process_name是我们感兴趣的进程的名称

默认情况下,它已经login到系统日志/var/log/syslog ,因此可以通过以下方式读取它:

 tail -f /var/log/syslog 

如果文件不存在,请检查/etc/syslog.conf以查看syslogd的configuration文件。 请注意,configuration文件可能不同,因此如果使用不同的文件,请检查正在运行的进程:

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

注意:在某些发行版(如Knoppix)中,所有logging的消息都可能被发送到不同的terminal(例如/dev/tty12 ),因此要访问例如tty12尝试按Ctrl + Alt + F12

您还可以使用lsof工具来查找syslogd进程正在使用哪个日志文件,例如

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

要将testing消息发送到shell中的syslogd,您可以尝试:

 echo test | logger 

对于故障排除,使用一个跟踪工具( strace on Linux,在Unix上进行),例如:

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

在华硕路由器可以通过

 :/bin# busybox 

还有其他相关的命令。