--作者:飞翔的小胖猪

--创建时间:2021年2月27日

内容

journalctl是systemd统一管理所有unit(服务)的启动日志。可以通过journalctl一个命令查看所有日志。

所有用户都被授予访问其私人的每个用户日志的权限。但是,在默认情况下,只有root用户和属于少数特殊组的用户才被授予访问系统日志和其他用户的日志的权限。“system -journal”、“adm”和“wheel”组的成员可以读取所有的journal文件。请注意,后两个组传统上具有由分发版指定的额外特权。“wheel”组的成员通常可以执行管理任务。

默认情况下,输出较长的内容将被“截断”到屏幕宽度。可以使用左箭头和右箭头键查看隐藏的部分。

当输出到tty时,将根据优先级对行进行着色:level ERROR及以上的行被着色为红色;级别通知及以上的行被突出显示;其他行显示正常。使用该命令时注意颜色不一样的输出。

格式

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

OPTIONS如果不为空则输出对应过的过滤格式,如同时指定了多个过滤条件,输出必须满足所有的过滤条件。

参数

--no-full, --full, -l :显示完整的字段,所有列,可使用左右键翻看。默认显示所有列--full和-l功能一样。
-a:显示所有的字段。
-i: 查找不区分大小写
-e: 跳到日志我呢见结尾,只显示一屏幕大小。
-f: 实时显示条目,和tail -f功能一致。
-n:显示最近的日志并指定行数,默认为10行。可以理解为才从最后显示10行。
--no-tail:显示所有的行,忽略掉-n参数。
-r:反向输出,最新的数据在首行。
--utc:显示UTC时间,不加时区。
--no-hostname:不要显示来自本地主机的日志消息的主机名字段。
-x:添加解释性帮助文本在输出中记录可用的消息。用来自消息目录的解释文本扩充日志行,增强日志文件可读性,使用的比较多。当将journalctl输出附加到bug报告时,请不要使用-x。
-m:显示所有可用的日志,包括远程日志的交叉条目。
-b:显示来自特定引导的消息。这将添加对“_BOOT_ID=”的匹配。0表示本次启动,-1表示上一次启动。1表示日志文件中发现的第一个启动、2表示日志文件中发现的第二个启动依次类推。默认参数为0。
--list-boots:显示引导编号,查找出来的值可配套-b参数使用。
-k:只显示引导日志中的内核消息,同等-b参数加_TRANSPORT=kernel过滤条件。
-u:显示指定的systemd单元单元(如服务)或任何匹配的单元的消息,该参数可在一条语句中多次使用。
--user-unit:显示指定用户会话单元的消息。这将为来自单元的消息添加匹配。
--utc:显示UTC时间,不加时区。
--no-hostname:不要显示来自本地主机的日志消息的主机名字段。
-x:添加解释性帮助文本在输出中记录可用的消息。用来自消息目录的解释文本扩充日志行,增强日志文件可读性,使用的比较多。当将journalctl输出附加到bug报告时,请不要使用-x。
-m:显示所有可用的日志,包括远程日志的交叉条目。
-b:显示来自特定引导的消息。这将添加对“_BOOT_ID=”的匹配。0表示本次启动,-1表示上一次启动。1表示日志文件中发现的第一个启动、2表示日志文件中发现的第二个启动依次类推。默认参数为0。
--list-boots:显示引导编号,查找出来的值可配套-b参数使用。
-k:只显示引导日志中的内核消息,同等-b参数加_TRANSPORT=kernel过滤条件。
-u:显示指定的systemd单元单元(如服务)或任何匹配的单元的消息,该参数可在一条语句中多次使用。
--user-unit:显示指定用户会话单元的消息。这将为来自单元的消息添加匹配。
-g:过滤输出到MESSAGE=字段匹配指定正则表达式的条目。如果输入模式都是小写则不区分大小写。
--case-sensitive:使模式匹配区分大小写或不区分大小写。默认不区分,小写的话。
-c:从传递的游标指定的日志位置开始显示条目。
--after-cursor:在传递的游标指定的位置之后显示日志中位置的条目。
--show-cursor:显示游标。
-S:在指定日期或更新日期,或在指定日期或更早日期开始显示项。
-F:在日志的所有条目中打印指定字段可以接受的所有可能数据值。
-N:打印日志所有条目中当前使用的所有字段名。
--system:显示来自系统服务和内核的消息。
--user:显示来之用户服务的消息。
-M:显示来自运行中的本地容器的消息。指定要连接的容器名称。
-D:以目录路径作为参数。如果指定了,journalctl将对指定的日志目录进行操作。
--disk-usage:显示所有日志文件的当前磁盘使用情况。这显示了所有存档的和的磁盘使用量的总和活跃日志文件。
--vacuum-size:删除最旧的归档日志文件,直到它们使用的磁盘空间低于指定的大小值,单位:“K”、“M”、“G”和“T”。
--vacuum-time:删除超过指定时间的日志文件,单位:s、m、h、days、months、weeks、years 。
--vacuum-files:指定单独的日志文件最大数量,超过部分就删除。
--sync:要求日志守护进程将所有尚未写入的日志数据写入备份文件系统并进行同步。
--flush:要求日志守护进程将存储在/run/log/journal中的任何日志数据刷新到/var/log/journal中。

-o:输出格式控制。

选项 释义
short 默认值,生成与syslog相同的格式输出,short开头的区别主要在时间上。
short-full 显示较为详细的时间精确到分,格式为:Sun 2021-02-28 09:18:00 CST
short-iso 显示时区年份精确到分,格式:2021-02-28T09:18:00+0800
short-precise 不显示年份精确到微秒,格式:2021-02-28T09:18:00.945348+0800
short-iso-precise 时间精确到微妙,格式:2021-02-28T09:18:00.945348+0800
short-monotonic 具有完全微秒精度的经典syslog时间戳,格式:0.000000
short-unix 自UTC 1970年1月1日以来的秒数,精确到微秒,格式:1614475080.945348
verbose 显示具有所有字段的完整结构条目,不再是一行一条记录。
export 日志序列化为适合备份和网络的二进制流
json json格式显示记录
json-pretty 将条目格式化为JSON数据结构,但将它们格式化为多行,以便使它们更易于阅读。
json-sse 将条目格式化为JSON数据结构,但将它们包装为适合于服务器发送事件[3]的格式。
cat 生成一个非常简洁的输出,只显示每个日志条目的实际消息,没有元数据和时间戳。
with-unit 类似于short-full,但是以单元和用户单元名作为前缀,而不是传统的syslog标识符。

-p:指定输出特定级别的信息,可shiyong..表示告警等级范围。将显示指定值和小于其数字的日志等级。

标识 级别
0 emerg
1 alert
2 crit
3 err
4 warning
5 notice
6 info
7 debug

常用命令

journalctl的很多参数都是可以组合使用的,文章只对常见的参数简单展示使用方法,复杂的组合方法自己玩去。

 1.常见查看参数

#-r标识反向输出,最新的日志在前面
[root@135 ~]# journalctl -r #实时查看日志,功能类似于tail -f命令
[root@135 ~]# journalctl -f #查看最后200行
[root@135 ~]# journalctl -n 200 #不分页输出日志,一次性在屏幕上输出所有日志,不用手动按上下键翻页
[root@135 ~]# journalctl --no-pager #之查看内核日志,-k标识为内核的意思,-r标识逆向输出,只输出系统内核日志,不输出用户服务日志
[root@135 ~]# journalctl -k -r #查看最后的一屏日志信息
[root@135 ~]# journalctl -e

#查看附加了注释信息的日志,-x常和其他参数合并使用,用来提高日志的可读性
[root@135 ~]# journalctl  -x

#显示系统日志信息
[root@135 ~]# journalctl  --system

#显示当前用户的用户日志
[root@135 ~]# journalctl  --user

#过滤日志文件信息,-g同等与grep命令,查找日志文件和network相关的内容,模式(此时的network)全小写则不区分大小写
[root@135 ~]# journalctl  -ig network

2.查看系统启动日志信息

#查看系统中能够查看到的启动日志列表
[root@135 ~]# journalctl --list-boots

#查看指定的启动日志,默认
[root@135 ~]# journalctl -b

3.查看指定的日志

#查看指定文件的日志
[root@135 systemd]# journalctl /usr/lib/systemd/systemd

#查看指定进程号的日志
[root@135 systemd]# journalctl   _PID=1

#实时查看脚本解释器的日志
[root@135 ~]# journalctl  -f /usr/bin/bash

#查看服务单元日志,先通过systemctl list-unit-files获取到所有unit列表
[root@135 ~]# systemctl  list-unit-files
[root@135 ~]# journalctl -u NetworkManager.servic

4.查看指定等级的日志

#显示等级err及以上的告警
[root@135 ~]# journalctl -p err #显示等级err及以上的告警
[root@135 ~]# journalctl -p 3 #显示等级在4-3的告警信息,也就是warning和err
[root@135 ~]# journalctl -p 4..3

5.日志空间暂用及清除

#显示系统中日志文件占用空间。
[root@135 ~]# journalctl --disk-usage #清日志空间直到满足1g,超出部分会被删除
[root@135 ~]# journalctl --vacuum-size=1G #清理1年之前的文件,超过该事件的日志将会被删除。
[root@135 ~]# journalctl --vacuum-time=1years

#清理单个日志文件超过100的日志文件,多出的直接清理掉。
[root@135 ~]# journalctl  --vacuum-files=100

#清理日志间,清理后满足日志存储占用空空间小于1G,同时日志文件不超过1年
[root@135 ~]# journalctl --vacuum-size=1G --vacuum-time=1years

配置journalctl

通过修改/etc/systemd/journald.conf配置文件内容可以控制journalctl一些参数。

没得事不要去修改,这个文件类的可以在虚拟化做系统模板的时候一次设置多次下发,单一一台一台的就算了,工作量太大。

[Journal]
#Storage=auto
#Compress=yes
#Seal=yes
#SplitMode=uid
#SyncIntervalSec=5m
#RateLimitIntervalSec=30s
#RateLimitBurst=10000
#SystemMaxUse=
#SystemKeepFree=
#SystemMaxFileSize=
#SystemMaxFiles=100
#RuntimeMaxUse=
#RuntimeKeepFree=
#RuntimeMaxFileSize=
#RuntimeMaxFiles=100
#MaxRetentionSec=
#MaxFileSec=1month
#ForwardToSyslog=no
#ForwardToKMsg=no
#ForwardToConsole=no
#ForwardToWall=yes
#TTYPath=/dev/console
#MaxLevelStore=debug
#MaxLevelSyslog=debug
#MaxLevelKMsg=notice
#MaxLevelConsole=info
#MaxLevelWall=emerg
#LineMax=48K
#SystemMaxUse=: 指定journal所能使用的最高持久存储容量。
#SystemKeepFree=: 指定journal在添加新条目时需要保留的剩余空间。
#SystemMaxFileSize=: 控制单一journal文件大小,符合要求方可被转为持久存储。
#RuntimeMaxUse=: 指定易失性存储中的最大可用磁盘容量(/run文件系统之内)。
#RuntimeKeepFree=: 指定向易失性存储内写入数据时为其它应用保留的空间量(/run文件系统之内)。
#RuntimeMaxFileSize=: 指定单一journal文件可占用的最大易失性存储容量(/run文件系统之内)。

journactl日志查看命令-渐入佳境的更多相关文章

  1. 服务端Linux机器日志查看命令

    常用查看命令 ps -ef | grep java 查看当前机器运行程序: tail -100f /... 查看日志,实时的 less /- 按页查看日志,空格翻页,q退出 cat /.. | gre ...

  2. linux日志查看命令

    tail tail 命令用于显示文本文件的末尾几行, 对于监控文件日志特别有用 tail example.txt #显示文件 example.txt 的后十行内容: tail -n 20 exampl ...

  3. linux tail命令及其它日志查看命令的用法

    当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务. Log位置: /var/log/message 系统启动后的信息和错误日志,是Red Hat L ...

  4. k8s中pod的容器日志查看命令

    如果容器已经崩溃停止,您可以仍然使用 kubectl logs --previous 获取该容器的日志,只不过需要添加参数 --previous. 如果 Pod 中包含多个容器,而您想要看其中某一个容 ...

  5. SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)

      SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很 ...

  6. SVN查看提交日志的命令

    Windows下,使用svn客户端查看日志很方便,但是如果在linux下,常规查看日志的命令对于日志记录数比较多的时候,屏幕显示不了,就比较麻烦,后来发现了一个很有用的参数可以限制要查看的记录条数 查 ...

  7. Linux查看日志常用命令(转载)

    转自: https://www.cnblogs.com/kbkiss/p/7567725.html -------------------------------------------------- ...

  8. Python 简易web日志查看工具&可改装为命令行工具

    Python 简易web日志查看工具&可改装为命令行工具 效果图 原理 利用python的paramiko库模拟ssh登录操作,并执行tail命令 所需库 flask.paramiko.gev ...

  9. [转帖]持久化journalctl日志清空命令查看配置参数详解

    持久化journalctl日志清空命令查看配置参数详解 最近 linux上面部署服务 习惯使用systemd 进行处理 这样最大的好处能够 使用journalctl 进行查看日志信息. 今天清理了下 ...

随机推荐

  1. 使用AJAX请求调用出现HTTPS协议错误问题

    前言: 这又是一个可能是半路就卡机的项目,在调用ajax的时候遇到了下面的这个错. js中有个ajax请求http,url是:http//:.js就提示请求了一个不安全的脚本,在发送ajax请求时,就 ...

  2. 从服务端生成Excel电子表格(Node.js+SpreadJS)

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,通常用于创建网络应用程序.它可以同时处理多个连接,并且不像其他大多数模型那样依赖线程. 对于 Web 开发者来说,从数据库 ...

  3. 学习Java第13天

    今天选择数据库选了半天,Oracle,MySQL,SQL sever太难了,安装了又被图形界面,Linux虚拟机所困扰 明天尽量完成数据库安装 只能说是找视频资料和安装教程了.

  4. from 表单上传多个文件?

    和单个上传文件基本相同,就是需要在后台控制器中,用数组来接收 jsp页面提交过来的file数据. 也分为三个部分演示. 一.jsp <%-- Created by IntelliJ IDEA. ...

  5. plsql 触发器介绍 语句级别触发器、行级别触发器。

    /* 分类: 1.DDL触发器 执行create,alter,drop操作时,会激活的触发器 2.DML触发器 执行增.删除.修改时,激活的触发器 3.系统事件触发器 执行特定的系统事件时(启动.加载 ...

  6. Java高并发下多线程编程

    1.创建线程 Java中创建线程主要有三种方式: 继承Thread类创建线程类: 定义Thread类的子类,并重写该类的run方法,该run方法的方法体就代表了线程要完成的任务.因此也把run方法称为 ...

  7. Codeforces Round #738 (Div. 2)

    Codeforces Round #738 (Div. 2) 跳转链接 A. Mocha and Math 题目大意 有一个长度为\(n\)的数组 可以进行无数次下面的操作,问操作后数组中的最大值的最 ...

  8. vue element InfiniteScroll 无限滚动 入坑记录

    select_law_by_tag() { this.laws_loading.is_loading = true; this.laws_loading.no_more = false; this.e ...

  9. 直播媒体流red5

    第一步下载 安装setup-Red5-1.0.1-java6.exe 安装教程网上有很多 显示如下页面说明安装成功 第二步 下载oflaDemo的 解压放在 第三步  打开 然后 ok了 注意:下面的 ...

  10. Nginx+Tomcat 实现负载均衡 ,动静分离集群部署

    Nginx + Tomcat 实现负载均衡,动静分离集群部署 1.Nginx实现负载均衡原理 2.Nginx配置反向代理主要参数 3.实验 1.Nginx实现负载均衡原理: Nginx服务器作为前端, ...