目录
一、命令介绍
journalctl 是一个在 Linux 系统中用于查询 systemd 日志的命令。systemd 是许多现代 Linux 发行版(如 Fedora、CentOS 7+、Ubuntu 15.04+ 等)的初始化系统和服务管理器,它收集并管理系统的日志。journalctl 允许用户查询和管理这些日志。
二、journalctl命令语法
1、基本语法
journalctl的基本语法如下:
journalctl [OPTIONS...] [MATCHES...]
2、常用选项
journalctl命令的常用选项如下:
-u UNIT 或 --unit=UNIT:显示指定服务单元的日志。
-p PRIORITY 或 --priority=PRIORITY:根据日志的优先级来过滤日志。
-b BOOT_ID 或 --boot=BOOT_ID:显示指定启动ID的日志。
-k 或 --dmesg:仅显示内核消息。
-f:实时跟踪日志输出(类似于 tail 命令)。
--since=DATE 和 --until=DATE:显示指定日期范围内的日志。
-n NUMBER:显示最近的 NUMBER 条日志。
-o export:以可移植的事件日志格式导出日志。
-r 或 --reverse:反向输出日志,最新的日志会显示在最上面。
--grep=PATTERN:只显示包含特定模式的日志行。
3、帮助
在linux命令行下,输入命令:
journalctl --help
显示如下journalctl的帮助信息:
三、可查询的日志类型
journalctl 提供了一个统一的接口来查询和管理包括系统日志、应用程序日志、安全日志、内核日志以及服务单元日志在内的多种类型的日志。这使得系统管理员能够更加方便地监控系统的运行状态和诊断问题。
下面对journalctl 允许用户查询的几种日志分别进行介绍。
1、系统日志
这些日志记录了系统级的事件和活动,包括系统的启动、关闭、各种服务的运行状态等。通过 journalctl,用户可以查看这些系统级日志,以了解系统的整体运行情况。
2、应用程序日志
应用程序在运行过程中产生的日志也可以通过 journalctl 进行查询。这些日志通常记录了应用程序的运行状态、错误信息等,对于诊断和解决应用程序问题非常有帮助。
3、安全日志
Linux 系统中的安全相关事件,如用户登录尝试、权限变更等,也会被记录并在 journalctl 中可查询。这些日志对于系统安全监控和审计至关重要。
4、内核日志
通过 journalctl -k 或 --dmesg 选项,用户可以查看内核产生的日志。这些日志包含了与硬件和系统内核相关的重要信息,如设备驱动程序的加载、系统调用的执行等。
5、服务单元日志
journalctl 允许用户按服务单元(如 sshd、apache2 等)来过滤和查看日志。这对于针对特定服务的监控和故障排除非常有用。
四、使用示例
1. 查看最近的30条日志
命令如下:
journalctl -n 30
操作如下图所示:
2. 查看某个服务(如 sshd)的日志
命令如下:
journalctl -u sshd
3. 实时查看日志
命令如下:
journalctl -f
操作如下所示:
过几秒钟,出现以下:
可见,这个命令可以动态显示日志。
4. 查看内核日志
命令如下:
journalctl -k
5. 查看某个时间范围内的日志
命令如下:
journalctl --since "2023-01-01" --until "2023-01-02"
6. 导出日志
命令如下:
journalctl -o export > logs.txt
7. 查看包含特定关键字的日志
命令如下:
journalctl --grep "error"
8. 查看特定优先级的日志
命令如下:
journalctl -p err
9. 查看上次启动的日志
命令如下:
journalctl -b -1
10、使用通配符,查看多个服务单元的日志
使用 *
通配符来匹配多个服务。例如,查询所有以 .service
结尾的服务日志, 命令如下:
journalctl -u '*.service'
注意,在某些 shell 环境中,可能需要对 *
进行转义或使用引号,以防止 shell 自身对其进行扩展。
五、其他说明
journalctl 提供了强大的日志查询功能,能帮助系统管理员快速定位和解决系统问题。它还可以与其他 systemd 工具(如 systemctl 和 systemd-analyze)结合使用,以提供更全面的系统管理功能。
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。