如果系统出现了错误问题,一般我们首先都会通过查看系统日志来了解问题发生的所在,从而判断出错误发生的原因以及制定出为之相应的解决措施。那么在Linux系统中我们如何查看系统日志呢?为此在本文中编程学习网笔者就为大家介绍具体的查看的命令方法供大家参考参考。
众所周知,在linux系统中有着许许多多的日志,比如系统日志、内核日志、软件包管理器日志、Xorg日志、启动进程日志、Apache日志、MySQL日志等等。在本文中笔者着重给大家介绍查看系统日志的命令方法,毕竟这是Linux故障排查的核心所在。一般来说大多数日志文件位于一个便利的位置:/var/log。
● 打开终端窗口行命令cd/var/log。
● 执行命令ls,如此我们就会看到位于该目录下面的日志(图1)。
接下来笔者分别使用三种命令来查看其中的一个日志:
图1
◎使用less查看日志
/var/log里面包含有最重要的日志之一是syslog。这个特殊的日志文件记录下了除验证相关消息之外的一切信息。如果我们想查看这一个日志文件的内容,我们则可以通过执行命令:less/var/log/syslog来解决。这个命令会打开syslog日志文件并显示文件首部,然后我们可以使用箭头键、空格键或者鼠标轮等每次向下滚动一行或者一页来轻松浏览文件。
当然这种方法有一个比较突出的问题,那就是syslog会变得相当庞大。考虑到我们要找的信息有可能在底部或靠近底部,如果按照前面所说的慢慢滚动搜索,那么搜索起来就得花上大量的时间了。那么有没有什么方法来解决这个问题呢?其实很简单,由于在less命令中syslog已打开,我们可以通过按 [Shift]+[g] 组合键来立即进入到日志文件的尾部,而通常尾部会标以(END)。如此一来我们便可以用箭头键或滚动轮向上滚动来快速找到我们所想要的具体信息了,不过也得花上一定的时间就是了。
◎使用dmesg查看日志
我们知道dmesg命令输出内核环缓冲区,在默认的情况下会显示来自内核环缓冲区的所有信息。为此我们可以通过从终端窗口执行命令dmesg,将整个内核环缓冲区的内容进行输出。下面是具体的输出显示(图2)。但是我们并不是要把所有的内容都进行输出,那么有没有什么办法进行部分输出呢?
图2
其实系统中就有一种内置的控制机制能够让我们得以仅仅输出某些程序模块。假设我们想查看用户程序模块的日志项,我们可以通过执行命令 dmesg--facility=user 。要是有什么信息记录到该工具它就会输出结果。相比于less命令,执行dmesg会显示日志的全部内容并让我们进入到文件尾部。我们始终可以通过使用滚动轮来浏览终端窗口的缓冲区。相反如果我们想要把dmesg的输出通过管道命令输入到less命令,我们可以通过输入以下命令来实现。具体的命令如下所示:
● dmesg | less
上述的命令会输出dmesg的内容且能够让我们可以滚动浏览输出,就好比使用less命令查看标准日志那样。
◎使用tail查看日志
可以说tail命令是用于查看日志文件的最方便的工具之一也不为过。通常tail的功能就是输出文件的尾部内容。所以如果我们执行命令 tail/var/log/syslog ,它只会输出syslog文件的尾部几行。另外tail命令有一个很重要的技巧,而这需要我们借助使用 -f 选项。如果我们执行命令 tail-f/var/log/syslog ,tail会继续监视日志文件,输出写入到文件的下一行。这意味着我们可以在终端窗口里面实时关注什么写入到syslog(图3)。
图3
通过这种方式使用tail对于排查问题有着很大的帮助。如果我们在关注文件时想退出tail命令,只需要按 [Ctrl]+[x] 组合键就可以了。另外值得一提的是我们还可以指示tail只关注某几行。比如我们只想查看写入到syslog的尾部5行,我们可以通过执行下面的这个命令来实现:
● tail-f-n5/var/log/syslog
上述的命令会关注syslog的输入且只输出最近的5行。一旦有新的行写入到syslog,它会将最早的那一行从首部删除。这是让关注日志文件的过程变得更容易的一种方法。
PS:对于查看少于四五行的日志时,笔者建议大家就不要使用这种方法了。因为到最后我们会发现输入被截断而无法获得某项的全部细节。
以上就是利用命令行查看Linux日志的方法介绍。
本次的轻松利用命令行查看Linux日志的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习Linux和Linux认证能够起到一定的帮助作用!