[.com快译]当你的系统出现问题时,首先要做的就是查看日志。本文作者介绍了Linux下查看日志的具体方法。在您作为Linux管理员的职业生涯中,您迟早应该查看日志文件。因为日志文件可以帮助您解决问题,所以每个有经验的管理员在出现问题后应该做的第一件事就是检查日志。您会发现许多日志:系统日志、内核日志、程序包管理器日志、Xorg日志、启动进程日志、Apache日志、MySQL日志……几乎所有您能想到的系统都有日志文件。大多数日志文件位于一个方便的位置:/var/log。当您的操作系统或重要服务出现问题时,这些是您严重依赖的系统和服务日志。如果问题特定于桌面应用程序,日志文件将写入不同的位置(例如Thunderbird将崩溃报告写入“~/.thunderbird/CrashReports”)。桌面应用程序将其日志写入何处取决于开发人员,以及应用程序是否允许自定义日志记录配置。我们将专注于系统日志,因为它是Linux故障排除的核心。这里的一个关键问题是,您如何查看这些日志文件?幸运的是,您有多种查看系统日志的方法,所有这些都来自命令行。/var/log这是Linux系统上的一个重要文件夹。打开终端窗口并执行命令cd/var/log。现在执行命令ls,您将看到位于该目录下的日志(参见图1)。图1:列出位于/var/log/下的日志文件现在,让我们看一下其中一个日志。使用less查看日志/var/log包含最重要的日志之一是syslog。这个特殊的日志文件记录了除身份验证相关消息之外的所有内容。假设要查看这个日志文件的内容,可以快速执行命令less/var/log/syslog。此命令将打开syslog日志文件并显示文件头。然后,您可以使用箭头键一次向下滚动一行,使用空格键一次向下滚动一页,或使用鼠标滚轮轻松滚动文件。这种方法的问题是syslog可能会变得非常大;此外,鉴于您要查找的信息很可能在底部或底部附近,您可能不想花时间逐行??或逐页滚动浏览每个条目。到最后,由于less命令中开启了syslog,所以也可以按[Shift]+[g]组合键,立即进入日志文件末尾。结尾将标有(END)。然后,您可以使用箭头键或滚轮向上滚动以查找所需的特定信息。当然,这不是很有效。使用dmesg查看日志dmesg命令输出内核环形缓冲区。默认情况下,此命令显示内核环形缓冲区中的所有信息。从终端窗口执行命令dmesg,将显示整个内核环缓冲区的内容(参见图2)。图2:USB外部驱动器显示问题需要调查幸运的是,有一个内置的控制机制允许您仅导出某些程序模块(设施,例如守护进程)。假设要查看用户程序模块的日志条目,可以执行命令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会继续监视日志文件,并将输出写入文件的下一行。这意味着您可以在终端窗口中实时跟踪写入系统日志的内容(参见图3)。图3:使用tail命令,关注/var/log/syslog以这种方式使用tail对故障排除非常有帮助。要在关注文件时退出tail命令,只需按[Ctrl]+[x]。您还可以指示tail仅关注某些行。假设您只想查看写入syslog的最后5行;为此,你可以执行这个命令:tail-f-n5/var/log/syslog上面的命令将只关注syslog输入和输出最近的5行。每当将新行写入syslog时,它都会从头开始删除最旧的行。这是使关注日志文件的过程更容易的好方法。我强烈建议不要使用这种方法查看少于四五行的日志,因为你肯定会发现输入被截断了,你无法获取某一项的所有详细信息。还有其他工具,您会发现用于查看日志文件的其他命令(甚至一些不错的GUI工具)。期待more、grep、head、cat、multitail、SystemLogViewer(系统日志查看器)可以帮助您通过日志文件排查系统问题。原标题:从命令行查看Linux日志,作者:JackWallen
