2011-05-20 41 views
40

在C,我们记录是这样的:如何查看bash中的系统日志?

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

在linux下,我们怎么能检查日志?

+3

'less/var/log/syslog'? – NPE 2011-05-20 15:48:35

+0

函数'syslog' *写*到系统日志? (除非你正在讨论访问内核消息环缓冲区的低级别访问,但我怀疑'url'是一个'int'。) – Cascabel 2011-05-20 15:54:30

+1

这个Q应该迁移到unix.SE.com,不确定它是否是值得它注意国防部的注意(我标记)。 – 2014-08-06 08:41:59

回答

68

less /var/log/syslog怎么样?

+17

'/ var/log/syslog'不存在... – kern 2011-05-20 15:52:49

+1

@kern:你正在使用哪个linux发行版和版本? – NPE 2011-05-20 15:53:29

+4

@kern:检查你的'/ etc/syslog.conf'里面的内容' – NPE 2011-05-20 15:58:14

31

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

11

tail -f /var/log/syslog | grep process_name 其中process_name是这个过程中我们感兴趣的是

9

默认情况下它记录到系统日志在/var/log/syslog,因此它可以被读取的名字:

tail -f /var/log/syslog 

如果文件没有按不存在,请检查/etc/syslog.conf以查看syslogd的配置文件。 注意,配置文件可以是不同的,所以查询的运行中的进程,如果它是用不同的文件:

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

注意:在某些分布(比如Knoppix)所有记录的消息可以被发送到不同的终端(例如/dev/tty12),所以访问例如tty12尝试按控制 + Alt + F12

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

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

发送测试消息外壳到syslogd,您可以尝试:

echo test | logger 

为了排除故障(在Unix上的Linux stracedtruss)使用跟踪工具,例如:

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

在华硕路由器上可以通过

:/bin# busybox 

还有其他相关命令。