服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|

服务器之家 - 服务器系统 - Linux - 从命令行如何查看Linux日志

从命令行如何查看Linux日志

2021-12-07 23:3651CTO布加迪编译 Linux

你的系统上出现问题时,要做的头一件事就是查看日志。本文作者介绍了在Linux下查看日志的具体方法。

你的系统上出现问题时,要做的头一件事就是查看日志。本文作者介绍了在Linux下查看日志的具体方法。

从命令行如何查看Linux日志

在你作为Linux管理员的职业生涯中,应该早晚都会查看日志文件。因为日志文件可以帮助你排查问题,每个经验丰富的管理员在出现问题后,要做的头一件事就是查看日志。

你会发现许多日志:系统日志、内核日志、软件包管理器日志、Xorg日志、启动进程日志、Apache日志、MySQL日志… 你能想到的几乎任何系统都有相应的日志文件。

大多数日志文件位于一个便利的位置:/var/log。这些都是系统和服务日志,你的操作系统或某一项重要服务出现问题时,会高度依赖这些日志。如果是针对特定桌面应用程序的问题,日志文件会被写入到不同的位置(比如Thunderbird把崩溃报告写入到 ‘~/.thunderbird/Crash Reports’)。桌面应用程序把日志写入到何处取决于开发人员,以及应用程序是否允许自定义日志配置。

我们会着重介绍系统日志,因为这是Linux故障排查的核心所在。而这里的一个关键问题是,你如何查看那些日志文件?

幸好,你有众多方法可以查看系统日志,它们都只要从命令行来执行即可。

  1. /var/log

这是Linux系统上一个至关重要的文件夹。打开终端窗口,执行命令cd /var/log。现在执行命令ls,你就会看到位于该目录下面的日志(见图1)。

从命令行如何查看Linux日志

图1:列出了位于/var/log/下的日志文件

现在,不妨看一看其中一个日志。

使用less查看日志

/var/log里面包含有最重要的日志之一是syslog。这个特殊的日志文件记录下了除验证相关消息之外的一切信息。假设你想查看这一个日志文件的内容,可以迅速执行命令less /var/log/syslog。这个命令会打开syslog日志文件,显示文件首部。然后,你可以使用箭头键每次向下滚动一行,使用空格键每次向下滚动一页,或者使用鼠标轮,轻松滚动浏览文件。

这种方法有一个问题,那就是syslog会变得相当庞大;另外,考虑到你要找的信息极有可能在底部或靠近底部,你可能不想把时间耗费在每次逐行或逐页滚动进入到尾部,由于在less命令中syslog已打开,你还可以按[Shift]+[g]组合键,立即进入到日志文件的尾部。尾部会标以(END)。然后,你可以用箭头键或滚动轮向上滚动,找到你想要的具体信息。

当然,这不是很高效。

使用dmesg查看日志

dmesg命令输出内核环缓冲区。默认情况下,该命令会显示来自内核环缓冲区的所有信息。从终端窗口,执行命令dmesg,整个内核环缓冲区的内容就会输出显示(见图2)。

从命令行如何查看Linux日志

图2:USB外部驱动器显示了需要研究的一个问题

幸好,有一种内置的控制机制让你得以仅仅输出某些程序模块(facility,比如守护进程)。

假设你想查看用户程序模块的日志项,可执行命令dmesg --facility=user。要是有什么信息记录到该工具,它会输出结果。

不像less命令,执行dmesg会显示日志的全部内容,并让你进入到文件尾部。你始终可以使用滚动轮来浏览终端窗口的缓冲区(如果适用的话)。相反,你会想要把dmesg的输出通过管道命令输入到less命令,就像这样:

  1. dmesg | less

上述命令会输出dmesg的内容,让你可以滚动浏览输出,就像使用less命令查看标准日志那样。

使用tail查看日志

tail命令可能是用于查看日志文件的最方便的工具之一。tail的功能就是输出文件的尾部内容。所以,如果你执行命令tail /var/log/syslog,它只会输出syslog文件的尾部几行。

但是等一下,好玩的并不仅限于此。tail命令有一个很重要的技巧,这需要借助使用-f选项。如果你执行命令tail -f /var/log/syslog,tail会继续监视日志文件,输出写入到文件的下一行。这意味着你可以在终端窗口里面实时关注什么写入到syslog(见图3)。

从命令行如何查看Linux日志

图3:使用tail命令,关注/var/log/syslog

以这种方式使用tail对于排查问题大有帮助。

在关注文件时想退出tail命令,只需按 [Ctrl]+[x]组合键。

你还可以指示tail只关注某几行。假设你只想查看写入到syslog的尾部5行;为此,你可以执行这个命令:

  1. tail -f -n 5 /var/log/syslog

上述命令会关注syslog的输入,只输出最近的5行。一旦有新的行写入到syslog,它会将最早的那一行从首部删除。这是让关注日志文件这个过程更容易的一种好方法。我强烈建议别使用这种方法来查看少于四五行的日志,因为你***会发现输入被截断,无法获得某项的全部细节。

还有其他工具

你会找到其他命令(甚至几个还不错的GUI工具)以便查看日志文件。预计more、grep、head、cat、multitail和系统日志查看器(System Log Viewer)可以帮助你通过日志文件来排查系统问题。

原文标题:Viewing Linux Logs from the Command Line,作者:Jack Wallen

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

原文链接:https://os.51cto.com/art/201612/524998.htm

延伸 · 阅读

精彩推荐
  • LinuxLinux环境开发效率 那些强大的命令盘点

    Linux环境开发效率 那些强大的命令盘点

    接下来接着介绍一些在linux下做开发经常使用到得命令,其中有打包压缩命令tar,文件查找命令find,文件内容查找命令grep,elf可执行文件分析工具readelf等...

    Linux教程网4342019-09-30
  • Linux让gzip压缩速度加快的解决方案:使用支持多核CPU多线程并发压缩的pigz

    让gzip压缩速度加快的解决方案:使用支持多核CPU多线程并发压缩

    这篇文章主要介绍了让gzip压缩速度加快的解决方案:使用支持多核CPU多线程并发压缩的pigz,需要的朋友可以参考下 ...

    服务器之家13642019-11-06
  • Linux使用 cpulimit 来释放你的 CPU

    使用 cpulimit 来释放你的 CPU

    cpulimit 命令主要对长期运行的和 CPU 密集型的进程有用。编译软件和转换视频是长期运行的进程的常见例子,它们可以使计算机的 CPU 使用率达到最大。限制...

    Linux中国9012021-06-21
  • LinuxLinux netstat命令大全详解

    Linux netstat命令大全详解

    本篇文章主要介绍了Linux netstat命令详解,现在分享给大家,也留给日后一个参考,有需要的可以了解一下。...

    ggjucheng7862021-12-01
  • LinuxLinux下配置Docker容器间网络连接的教程

    Linux下配置Docker容器间网络连接的教程

    这篇文章主要介绍了Linux下配置Docker容器间网络连接的教程,这里主要讲解功能相对较强的Bridge桥接方式,就与大家平时配置虚拟机时虚拟机的桥接类似,需要...

    开源中文社区4952019-06-16
  • LinuxLinux 基金会从 IBM 手中接管 Liquid Prep 项目

    Linux 基金会从 IBM 手中接管 Liquid Prep 项目

    在过去的几十年时间里,由于气候变化和降雨减少,农民越来越依靠地下水灌溉农作物。即使在干旱多发地区,农民仍然需要种植耗水量大的农作物,因为...

    开源中国9222021-03-23
  • Linuxlinux命令之gzip命令详解和使用实例

    linux命令之gzip命令详解和使用实例

    减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。gzip是在Linux系统中经常使用的一个对文件进行...

    linux命令大全6892019-11-18
  • Linux详解Linux动态库生成与使用指南

    详解Linux动态库生成与使用指南

    这篇文章主要介绍了详解Linux动态库生成与使用指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们...

    JollyWing4412020-07-23