首页 > 编程知识 正文

journalctl命令详解,journalctl搜索日志关键字

时间:2023-05-05 19:27:24 阅读:19073 作者:20

journalctl命令journalctl命令是系统日志系统中的命令,主要目的是显示系统日志系统中记录的日志。 在Systemd出现之前,Linux系统和每个APP应用程序的日志是分开管理的。 Systemd取代initd后,现在可以统一管理所有Unit的启动日志,只需一个Unit即可管理

语法journal CTL [ options . ] [ matches . ]参数--no-full、--full、-l: (如果字段与可用列匹配)将被省略。 默认设置显示允许换行符或截断的完整字段。 旧选项-l/--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非常类似,但时间戳以微秒的精度显示。 短监视器:很相似,但显示的是监视器的时间戳而不是墙壁时钟的时间戳。 verbose:显示了包含所有字段的完整结构条目。 export:将日志序列化为适合备份和网络传输的二进制流,主要基于文本。 json:将条目逐行格式化为JSON数据结构。 json-pretty:将条目格式化为JSON数据结构,但将其格式化为多行以方便人们阅读。 json-sse:将条目格式化为JSON数据结构,但将其包装为适合服务器发送的Eventsm的格式。 cat:生成非常简洁的输出,只显示每个日志条目的实际消息,没有元数据,也没有时间戳。 -x,--catalog:使用来自消息目录的说明文本扩展日志行。 这将向输出中可用的日志消息中添加说明性帮助文本。 此简短帮助文本描述错误和日志事件的上下文、可能的解决方案、支持论坛、开发人员文档和其他相关文档的指针。 请注意,帮助文本并不适用于所有邮件,仅适用于选定的邮件。 另外,如果要将日记账CTL输出附加到错误报告,请不要使用-x。 -q,--quiet:在以普通用户身份运行时,禁止显示有关无法访问的系统日志的警告消息。 -m,--merge:显示所有可用日志,包括远程日志的交叉条目。 -b [ID][offset]、--boot=[ID][offset]:显示来自特定启动的消息。 将匹配项添加到_BOOT_ID=。 参数可能为空。 在这种情况下,显示当前引导的日志并省略引导ID,因此1表示在日志中按时间顺序找到的第一次引导,2表示第二次引导。 同样,-0表示最后一次引导,-1表示最后一次引导之前的引导。 同样,除非当前引导是最后一次引导,否则不能通过指定--directory来查看来自不同计算机的日志。 如果指定了32个字符的ID,则可以选择标识相对于boot ID的指定引导的后续偏移。 负值表示旧引导,正值表示慢引导。 如果未指定offset,则会将值视为0,并显示为ID指定的引导日志。 --list-boots:显示当前引导的引导编号、它们的id以及与引导相关的第一条和最后一条消息的时间戳列表。

-k,--dmesg:仅显示内核消息。 这意味着添加与-b匹配的_TRANSPORT=kernel。 -u,--unit=UNIT|PATTERN:显示指定系统单元的消息或与PATTERN匹配的单元的消息。 如果指定了模式,则在日志中找到的设备名称列表将与指定模式进行比较,并使用所有匹配的设备。 对于每个设备名称,在来自此设备的消息中添加匹配项_SYSTEMD_UNIT=unit、来自systemd的消息和有关指定设备的coredumps的消息之间的其他匹配项。 可以多次指定此参数。 --user-unit=:显示指定用户会话单元的消息。 这将向来自设备的消息_SYSTEMD_USER_UNIT=和_UID=添加匹配项,并将其他匹配项添加到来自会话systemd的消息和来自指定设备的coredumps的消息中。 可以指定此参数,根据-p,--priority=:消息的优先级或优先级范围过滤输出,并以单个数字或文本日志级别(0 emerg和7 debug之间或.的格式)表示

别是syslog中记录的通常的syslog日志级别,即emerg 0、alert 1、crit 2、err 3、warning 4、notice 5、info 6、debug 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部分,则假定为当前日期,或者理解字符串yesterday、today、tomorrow,分别表示当前日期的前一天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: 生成一个新的适合标识消息的128位ID,而不是显示日志内容,这是为那些需要为他们引入的新消息使用新标识符并希望使其可识别的开发人员准备的,这将以三种不同的格式打印新的ID,这些格式可以复制到源代码或类似的文件中。--header: 不是显示日志内容,而是显示所访问日志字段的内部头信息。--disk-usage: 显示所有日志文件的当前磁盘使用情况。--list-catalog [128-bit-ID...]: 以消息id表的形式列出消息目录的内容,以及它们的简短描述字符串,如果指定了任何128位id,则只显示那些条目。--dump-catalog [128-bit-ID...]: 显示消息目录的内容,条目由由两个破折号和ID组成的行分隔,格式与.catalog文件相同,如果指定了任何128位id,则只显示那些条目。--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.htmlhttps://blog.orchidflower.cn/2020/04/20/linux-command-introduction-04-journalctl/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。