- 概述:
journalctl
是systemd
日志记录系统的一部分,它用于查看和管理由systemd
服务管理器收集的日志信息。 - 优点:
- 实时性:
journalctl
支持实时查看日志,即可以在命令执行过程中动态更新日志。 - 存储:日志信息默认存储在内存中,并且可以选择性地保存到磁盘,这样可以减少磁盘 I/O。
- 灵活性:提供了丰富的过滤选项,可以根据时间、服务单元、优先级等条件过滤日志。
- 管理:可以控制日志的存储位置、大小限制等。
- 实时性:
- 缺点:
- 兼容性:不是所有 Linux 发行版都使用
systemd
,因此在某些系统上可能不可用。 - 存储:默认情况下日志信息存储在内存中,断电或重启后可能丢失。
- 兼容性:不是所有 Linux 发行版都使用
常用命令
- --system:显示系统日志。
- --user:显示当前用户的日志。
- --machine=CONTAINER:在本地容器内操作。
- --since=DATE:显示指定日期之后的日志条目。
- --until=DATE:显示指定日期之前的日志条目。
- --cursor=CURSOR:从指定的游标位置开始显示日志条目。
- --after-cursor=CURSOR:显示指定游标之后的日志条目。
- --show-cursor:在所有条目之后打印游标位置。
- --boot[=ID]:显示当前启动或指定启动的日志。
- --list-boots:列出记录的启动信息。
- --dmesg:显示当前启动的内核消息日志。
- --unit=UNIT:显示指定服务单元的日志。
- --identifier=STRING:显示具有指定 syslog 标识符的日志条目。
- --priority=RANGE:显示具有指定优先级的日志条目。
- --pager-end:在分页器中立即跳到最后一条日志。
- --follow:实时跟踪日志更新。
- --lines[=INTEGER]:显示指定数量的日志条目。
- --no-tail:即使在跟踪模式下也显示所有日志条目。
- --reverse:首先显示最新的日志条目。
- --output=STRING:改变日志输出模式(short, short-iso, short-precise, short-monotonic, verbose, export, json, json-pretty, json-sse, cat)。
- --utc:使用协调世界时 (UTC) 显示时间。
- --catalog:添加消息解释,如果可用的话。
- --no-full:省略长字段和不可打印的字符。
- --all:显示所有字段,包括长字段和不可打印的字符。
- --quiet:不显示权限警告信息。
- --no-pager:不通过分页器显示输出。
- --merge:显示所有可用日志文件的日志条目。
- --directory=PATH:显示指定目录下的日志文件。
- --file=PATH:显示指定的日志文件。
- --root=ROOT:在指定的根目录下操作。
- --interval=TIME:FSS 密钥更改的时间间隔。
- --verify-key=KEY:指定 FSS 验证密钥。
- --force:强制使用 --setup-keys 选项。
- --help:显示帮助文本。
- --version:显示软件包版本。
- --field=FIELD:列出指定字段的所有值。
- --new-id128:生成一个新的 128 位 ID。
- --disk-usage:显示所有日志文件的总磁盘使用情况。
- --vacuum-size=BYTES:将磁盘使用量降低到指定的大小以下。
- --vacuum-time=TIME:删除早于指定日期的日志文件。
- --flush:将 /run 目录中的所有日志数据刷新到 /var。
- --header:显示日志头信息。
- --list-catalog:列出消息目录中的所有消息 ID。
- --dump-catalog:显示消息目录中的条目。
- --update-catalog:更新消息目录数据库。
- --setup-keys:生成一个新的 FSS 密钥对。
- --verify:验证日志文件的一致性。