如何检查系统日志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
还有其他相关的命令。