为了保证Linux系统正常运行、准确解决遇到的各种各样的系统问题,认真地读取日志文件是系统管理员的一项非常重要的任务。本文将简单解释什么是日志文件、在哪里可以找到日志文件以及如何处理它们。
Linux内核由很多子系统组成,包括网络、文件访问、内存管理等。子系统需要给用户传送一些消息,这些消息内容包括消息的来源及其重要性等。所有的子系统都要把消息送到 一个可以维护的公用消息区,于是,就有了一个叫Syslog的程序。
Syslog程序有什么用
系统核心和许多系统程序会产生错误信息、警告信息和其他信息。这些信息很重要的,所以它们应该被写到一个文件。执行这个过程的程序就是Syslog,它能设置成根据输出信息的程序或重要程度将信息排序到不同的文件。例如,由于核心信息更重要且需要有规律地阅读以确定问题出在哪里,所以要把核心信息与其他信息分开来,单独定向到一个分离的文件中。
日志文件通常存放在“/var/log”目录下。为了查看日志文件的内容必须要有“Root”权限。日志文件中的信息很重要,只能让超级用户有访问这些文件的权限。
查看日志文件
日志文件其实是纯文本的文件,每一行就是一个消息。只要是在Linux下能够处理纯文本的工具都能用来查看日志文件。日志文件总是很大的,因为从你第一次启动Linux开始,消息就都累积在日志文件中。看日志文件的一个比较好的方法是用像More或Less那样的分页显示程序,或者用Grep查找特定的消息。我们先用Less显示“/var/log/messages”,可以看到从日志文件中取出来的一些消息。每一行表示一个消息,而且都由四个域的固定格式组成:
*时间标签(Timestamp),表示消息发出的日期和时间。
*主机名(Hostname),表示生成消息的计算机的名字。如果只有一台计算机,主机名就可能没有必要了。但是,如果在网络环境中使用Syslog,那么就可能要把不同主机的消息发送到一台服务器上集中处理。在我们的例子中主机名为lcbj。
*生成消息的子系统的名字。可以是“Kernel”,表示消息来自内核或者是进程的名字,表示发出消息的程序的名字。在方括号里的是进程的PID。
*消息(Message),即消息的内容。
图3中,你会发现“优先级”等于“Info”和“Notice”的消息,无论它们的“设备”是什么,都发到“/usr/adm/messages”文件,因为在“选择器”中使用了通配符。同样“优先级”为“Debug”和“Err”的消息都分别送到“/usr/adm/debug”和“/usr/adm/syslog”文件。
编辑完“/etc/syslog”文件之后,还必须运行“Killall -HUP Syslogd”,这样所做的改变才会生效。这个命令发送“HUP”信号给Syslog守护进程,通知守护进程重新读取配置文件。
日志文件对于管理员来说很重要,通过对日志文件的管理,可以更好地维护系统,保障各种应用的正常进行。