journalctl命令

journalctl命令是Systemd日志系统的一个命令,主要用途是用来查看通过Systemd日志系统记录的日志,在Systemd出现之前,Linux系统及各应用的日志都是分别管理的,Systemd取代了initd之后便开始统一管理了所有Unit的启动日志,可以只用一个journalctl命令,查看所有内核和应用的日志。

语法

journalctl [OPTIONS...] [MATCHES...]

参数

  • --no-full, --full, -l: 当字段匹配可用列时将其省略,默认设置是显示完整字段,允许它们换行或被截断,旧的选项-l/--full不再有用,除了撤销--no-full
  • -a, --all: 完整显示所有字段,即使它们包含不可打印字符或非常长。
  • -f, --follow: 仅显示最近的日志条目,并在新条目附加到日志时连续打印。
  • -e, --pager-end: 立即跳到日志的结尾内隐含的工具,这意味着-n 1000可以保证分页器不会缓冲大小不受限制的日志,可以在命令行中使用显式的-n和其他一些数值来覆盖它,注意,这个选项只支持less页。
  • -n, --lines=: 显示最近的日志事件并限制显示的事件数,如果使用--follow,则隐含此选项,参数为正整数,是可选的,默认为10
  • --no-tail: 显示所有存储的输出行,即使在follow模式下也是如此,撤消--line=的效果。
  • -r, --reverse: 反转输出,以便首先显示最新的条目。
  • -o, --output=: 控制所显示的日志条目的格式,采用以下选项之一:
    • short: 默认值,并生成与经典syslog文件格式基本相同的输出,每个日志条目显示一行。
    • short-iso: 与short非常相似,但显示ISO 8601 wallclock时间戳。
    • short-precise: 与short非常相似,但是以微秒的精度显示时间戳。
    • short-monotonic: 非常相似,但是显示的是monotonic的时间戳,而不是wallclock的时间戳。
    • verbose: 显示具有所有字段的完整结构条目。
    • export: 将日志序列化成适合备份和网络传输的二进制流,主要是基于文本的。
    • json: 将条目格式化为JSON数据结构,每行一个。
    • json-pretty: 将条目格式化为JSON数据结构,但将它们格式化为多行,以使人们更容易阅读。
    • json-sse: 将条目格式化为JSON数据结构,但将它们包装为适合服务器发送的Eventsm的格式。
    • cat: 生成一个非常简洁的输出,只显示每个日志条目的实际消息,没有元数据,甚至没有时间戳。
  • -x, --catalog: 用来自消息目录的解释文本扩充日志行,这将向输出中可用的日志消息中添加解释性帮助文本,这些简短的帮助文本将解释错误或日志事件的上下文、可能的解决方案,以及指向支持论坛、开发人员文档和任何其他相关手册的指针,注意,帮助文本不是对所有消息都可用,而是仅对选定的消息可用。此外,将journalctl输出附加到错误报告时,请不要使用-x
  • -q, --quiet: 当以普通用户身份运行时,禁止显示有关不可访问的系统日志的任何警告消息。
  • -m, --merge: 显示所有可用的日志,包括远程日志的交叉条目。
  • -b [ID][±offset], --boot=[ID][±offset]: 显示来自特定启动的消息,这将为_BOOT_ID=添加匹配项,参数可能为空,在这种情况下,将显示当前引导的日志,如果省略引导ID,则正偏移量将查找从日志开始的引导,而等于或小于零的偏移量将查找从日志结束的引导,因此,1表示按时间顺序在日志中找到的第一个引导,2表示第二个引导,依此类推,而-0表示最后一个引导,-1表示最后一个引导之前的引导,依此类推,空偏移量等同于指定-0,除非当前引导不是最后一次引导,例如因为指定--directory查看来自不同计算机的日志。如果指定了32个字符的ID,则可以选择后跟偏移量,该偏移量标识相对于boot ID给定的引导,负值表示较早的引导,正值表示较晚的引导,如果未指定offset,则假定值为零,并显示ID给定的引导日志。
  • --list-boots: 显示引导编号(相对于当前引导)、它们的id以及与引导相关的第一条和最后一条消息的时间戳的列表。
  • -k, --dmesg: 只显示内核消息,这意味着-b并添加匹配_TRANSPORT=kernel
  • -u, --unit=UNIT|PATTERN: 显示指定的systemd单元单元的消息,或任何与PATTERN匹配的单元的消息,如果指定了模式,日志中找到的单元名称列表将与指定的模式进行比较,并使用所有匹配的内容,对于每个单元名,将为来自该单元的消息添加一个匹配_SYSTEMD_UNIT= unit,以及来自systemd的消息和关于指定单元的coredumps的消息的额外匹配,该参数可以指定多次。
  • --user-unit=: 显示指定用户会话单元的消息,这将为来自单元的消息_SYSTEMD_USER_UNIT=_UID=添加匹配,并为来自会话systemd的消息和关于指定单元的coredumps的消息添加额外匹配,该参数可以指定多次。
  • -p, --priority=: 根据消息优先级或优先级范围筛选输出,接受单个数字或文本日志级别(即在0 emerg7 debug之间),或以..形式表示的numeric/text日志级别范围,日志级别是syslog中记录的通常的syslog日志级别,即emerg 0alert 1crit 2err 3warning 4notice 5info 6debug 7,如果指定一个日志级别,则显示该级别或更低(值更低优先级更高)日志级别的所有消息,如果指定了一个范围,则将显示该范围内的所有消息,包括该范围的开始值和结束值,这将为指定的优先级添加PRIORITY=匹配项。
  • -c, --cursor=: 从传递的游标指定的日志位置开始显示条目。
  • --after-cursor=: 从该光标指定的位置之后的日志位置开始显示条目,使用--show-cursor选项时将显示光标。
  • --show-cursor: 光标显示在最后一项的两个破折号后,类似于-- cursor: s=0639...,光标的格式是私有的,可能会更改。
  • --since=, --until=: 分别在指定日期或更新日期,或在指定日期或更新日期开始显示条目,日期规范的格式应该是2012-10-30 18:17:16,如果省略了时间部分,则假定为00:00:00,如果只省略了seconds组件,则假定为:00,如果省略了date部分,则假定为当前日期,或者理解字符串yesterdaytodaytomorrow,分别表示当前日期的前一天00:00:00、当前日期的前一天00:00:00、当前日期的后一天,now指的是当前时间,最后,可以指定相对次数,以-+作为前缀,分别表示当前时间之前或之后的次数。
  • -F, --field=: 在日志的所有条目中打印指定字段可以接受的所有可能数据值。
  • --system, --user: 显示来自系统服务和内核的消息(使用--system),显示来自当前用户服务的消息(使用--user),如果两者都未指定,则显示用户可以看到的所有消息。
  • -M, --machine=: 显示来自运行中的本地容器的消息,指定要连接的容器名称。
  • -D DIR, --directory=DIR: 以目录路径作为参数,如果指定,journalctl将操作指定的日志目录DIR,而不是默认的运行时和系统日志路径。
  • --file=GLOB: 以文件glob作为参数,如果指定,journalctl将操作与GLOB匹配的指定日志文件,而不是默认的运行时和系统日志路径,可以指定多次,在这种情况下文件将被适当地交错。
  • --root=ROOT: 以目录路径作为参数,如果指定,journalctl将对指定目录下的目录文件层次结构而不是根目录进行操作,例如--update catalog将创建root/var/lib/systemd/catalog/database
  • --new-id128: 生成一个新的适合标识消息的128ID,而不是显示日志内容,这是为那些需要为他们引入的新消息使用新标识符并希望使其可识别的开发人员准备的,这将以三种不同的格式打印新的ID,这些格式可以复制到源代码或类似的文件中。
  • --header: 不是显示日志内容,而是显示所访问日志字段的内部头信息。
  • --disk-usage: 显示所有日志文件的当前磁盘使用情况。
  • --list-catalog [128-bit-ID...]: 以消息id表的形式列出消息目录的内容,以及它们的简短描述字符串,如果指定了任何128id,则只显示那些条目。
  • --dump-catalog [128-bit-ID...]: 显示消息目录的内容,条目由由两个破折号和ID组成的行分隔,格式与.catalog文件相同,如果指定了任何128id,则只显示那些条目。
  • --update-catalog: 更新消息目录索引,每次安装、删除或更新新的编目文件以重新生成二进制编目索引时,都需要执行此命令。
  • --setup-keys: 生成一个用于前向安全密封FSS的新密钥对,而不是显示日志内容,这将生成一个密封密钥和一个验证密钥,密封密钥存储在日志数据目录中,并保留在主机上,验证键应该存储在外部。
  • --force: 当传递了--setup keys并且已经配置了前向安全密封FSS时,重新创建FSS keys
  • --interval=: 指定使用--setup-keys生成FSS密钥对时密封密钥的更改间隔,较短的时间间隔会增加CPU消耗,但会缩短无法检测到的日志更改的时间范围,默认为15分钟。
  • --verify: 检查日志文件的内部一致性,如果文件是在启用FSS的情况下生成的,并且FSS验证密钥是用--verify key=指定的,则会验证日志文件的真实性。
  • --verify-key=: 指定用于--verify操作的FSS验证密钥。
  • --no-pager: 不将程序的输出内容管道pipe给分页程序。
  • --vacuum-size=BYTES: 将磁盘使用减少到指定大小以下。
  • --vacuum-files=INT: 仅保留指定数量的日记文件。
  • --vacuum-time=TIME: 任何早于指定时间点的条目都将被删除。
  • --rotate: 要求日志守护进程滚动日志文件,此命令会一直阻塞到滚动操作完成之后才会返回,日志滚动可以确保所有活动的日志文件都被关闭、并被重命名以完成归档,同时新的空白日志文件将被创建,并成为新的活动日志文件,通常可以与--vacuum-size=--vacuum-time=--vacuum-file=一起使用, 以提高日志清理的效率。
  • -h, --help: 输出帮助信息。
  • --version: 输出版本信息。

示例

显示本次启动以来的全部日志。

journalctl

显示内核日志。

journalctl -k

使用-n参数可以显示最后n行日志,如果不指定行数,默认显示10行。

journalctl -n 20

查看指定进程的日志。

journalctl _PID=1

显示最近30分钟的日志。

journalctl --since=-30m

显示2021年以来的日志。

journalctl --since="2021-01-01"

显示今天的日志。

journalctl --since=today

使用-f参数可以实现类型tail -f的功能,持续监控最新的日志。

journalctl -f

查看指定Unit的日志。

journalctl -u nginx.service

查看日志占用的磁盘空间。

journalctl --disk-usage

要求日志守护进程滚动日志文件,日志滚动可以确保所有活动的日志文件都被关闭、并被重命名以完成归档,同时新的空白日志文件将被创建,并成为新的活动日志文件。

journalctl --rotate

清理一个周前的日志。

journalctl --vacuum-time=1week

将磁盘占用减少到指定大小以下。

journalctl --vacuum-size=10M

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

http://www.jinbuguo.com/systemd/journalctl.html#
https://www.commandlinux.com/man-page/man1/journalctl.1.html
https://blog.orchidflower.cn/2020/04/20/linux-command-introduction-04-journalctl/

journalctl命令相关推荐

  1. linux journalctl 命令 查询systemd init 系统日志

    journalctl 用来查询 systemd-journald 服务收集到的日志.systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务. 命令格式为: j ...

  2. Linux journalctl 命令

    Linux journalctl 命令 1. journalctl 作用 2. journalctl 的配置文件 3. journalctl 用法 3. journalctl -xe 常用参数 参考 ...

  3. linux下journalctl日志在哪,使用linux的journalctl命令查看日志

    服务器 本篇文章和大家了解一下使用linux的journalctl命令查看日志.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. Systemd统一管理所有 Unit 的启动日志.带来 ...

  4. Linux系统中的日志管理 ---systemd-journald日志(journalctl命令的用法)和 rsyslog 日志(自定义日志采集路径、更改日志采集格式和日志的远程同步)

    一.实验环境 Horizon_carry: 172.25.254.10 carry: 172.25.254.20 Horizon_carry & carry: systemctl stop f ...

  5. linux 运行ctl文件_linux journalctl 命令

    目录 journalctl 用来查询 systemd-journald 服务收集到的日志.systemd-journald 服务是 systemd init 系统提供的收集系统日志的服务. 命令格式为 ...

  6. journalctl命令使用简介

    journalctl 如果不带参数,journalctl将显示所有的信息. (从旧到新) journalctl -r -r参数表示反序输出,(从新到旧) journalctl -f 要使用 journ ...

  7. linux工具-journalctl查询日志

    有时候,当linux服务启动失败的时候,系统会提示我们使用journalctl -xe命令来查询详细信息,定位服务不能启动的原因. journalctl 用来查询 systemd-journald 服 ...

  8. journalctl中文手册

    journalctl是一个Linux命令,用于查看系统日志.它可以显示系统启动.服务启动.系统错误等各种事件的详细信息.以下是journalctl命令的完整中文手册: 名称 journalctl - ...

  9. systemd介绍六:Journalctl查看并操作sytemd日志

    一.内容简介 作为最具吸引力的优势,systemd拥有强大的处理与系统日志记录功能.在使用其它工具时,日志往往被分散在整套系统当中,由不同的守护进程及进程负责处理,这意味着我们很难跨越多种应用程序对其 ...

  10. 系统日志管理——journalctl

    1.journalctl 日志查看工具: journalctl命令 注:此命令查看的是内核里所存储的日志,机子重启后会自动消失. journalctl -n 3 参看最近3条日志 journalctl ...

最新文章

  1. 有了NPU,还要DSP吗?
  2. JAVA里tokens意思_Java TokenMetadata.sortedTokens方法代码示例
  3. AndroidStudio SSL peer shut down incorrectly
  4. Java新手问题 02 面向对象基本功
  5. 选购四轴飞行器的部件
  6. Python笔记-XPath定位
  7. FLY主题1.4版本免费完全开源【EMLOG】
  8. IIS之错误解决之道
  9. ASP.NET AJAX1.0尝鲜试用:Web Service调用
  10. 如何用c语言随机输出除法题,随机产生30道四则运算(C语言)
  11. 【笔记目录】南邮(通达)计算机专业基础
  12. Fission for Mac(简易音频编辑软件)附注册码 v2.4.5激活版
  13. 浅谈运维合一模式下变电所集中检修施工现场的安全管理
  14. 流媒体中的常用网络传输协议
  15. 对于Gitlab项目的Developer权限问题 (Guest,Reporter,Developer,Maintainer)
  16. Codeforces Young Physicist
  17. codewars----Exes and Ohs
  18. 量子物理 詹班 计算机,连爱因斯坦都被困其中,量子力学到底有多厉害?
  19. jdk_8u201_x64下载直链
  20. 门禁上的push是什么意思_门禁的NC、NO、COM、PUSH等一系列符号的含义是什么?

热门文章

  1. 安卓dj专业打碟机软件_学DJ打碟必备设备
  2. 老男孩python课程_老男孩python课程
  3. 开机脚本之——小键盘代替鼠标热键
  4. 在四位共阴极数码上显示“2 3 5 8”四个数字
  5. 23种软件设计模式全解析
  6. springboot幼儿园幼儿基本信息管理系统毕业设计源码201126
  7. Linux部署-elasticsearch7.6.1
  8. 辅助进度控制的计算机软件是指,辅助进度控制的计算机软件是指以( )为核心的项目管理软件包。...
  9. Python数据处理之导入导出excel数据
  10. Python菜鸟入门: 如何在Python中读写文件