journactl日志查看命令-渐入佳境
--作者:飞翔的小胖猪
--创建时间: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日志查看命令-渐入佳境的更多相关文章
- 服务端Linux机器日志查看命令
常用查看命令 ps -ef | grep java 查看当前机器运行程序: tail -100f /... 查看日志,实时的 less /- 按页查看日志,空格翻页,q退出 cat /.. | gre ...
- linux日志查看命令
tail tail 命令用于显示文本文件的末尾几行, 对于监控文件日志特别有用 tail example.txt #显示文件 example.txt 的后十行内容: tail -n 20 exampl ...
- linux tail命令及其它日志查看命令的用法
当日志文件存储日志很大时,我们就不能用vi直接进去查看日志,需要Linux的命令去完成我们的查看任务. Log位置: /var/log/message 系统启动后的信息和错误日志,是Red Hat L ...
- k8s中pod的容器日志查看命令
如果容器已经崩溃停止,您可以仍然使用 kubectl logs --previous 获取该容器的日志,只不过需要添加参数 --previous. 如果 Pod 中包含多个容器,而您想要看其中某一个容 ...
- SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace)
SQL Server:查看SQL日志文件大小命令:dbcc sqlperf(logspace) DBA 日常管理工作中,很重要一项工作就是监视数据库文件大小,及日志文件大小.如果你管理数据库的有很 ...
- SVN查看提交日志的命令
Windows下,使用svn客户端查看日志很方便,但是如果在linux下,常规查看日志的命令对于日志记录数比较多的时候,屏幕显示不了,就比较麻烦,后来发现了一个很有用的参数可以限制要查看的记录条数 查 ...
- Linux查看日志常用命令(转载)
转自: https://www.cnblogs.com/kbkiss/p/7567725.html -------------------------------------------------- ...
- Python 简易web日志查看工具&可改装为命令行工具
Python 简易web日志查看工具&可改装为命令行工具 效果图 原理 利用python的paramiko库模拟ssh登录操作,并执行tail命令 所需库 flask.paramiko.gev ...
- [转帖]持久化journalctl日志清空命令查看配置参数详解
持久化journalctl日志清空命令查看配置参数详解 最近 linux上面部署服务 习惯使用systemd 进行处理 这样最大的好处能够 使用journalctl 进行查看日志信息. 今天清理了下 ...
随机推荐
- 查看Linux系统信息
1.查看内核 [root@localhost etc]# uname -aLinux localhost.localdomain 3.10.0-514.el7.x86_64 #1 SMP Tue No ...
- JavaScript通过父节点ID递归生成JSON树
JavaScript通过父节点ID递归生成JSON树: · 实现思路:通过递归实现(第一次递归的时候查询出所有的父节点,然后通过当前父节点id不断地去查询所有子节点,直到递归完毕返回) · 代码示 ...
- 谷歌CEO桑达尔·皮查伊:区块链可能撼动云计算
谷歌CEO桑达尔·皮查伊在周二的季度收益电话会议上承认了Web3和区块链的力量. 皮查伊表示,Web3描述了基于区块链的互联网新愿景,区块链是一种分散.安全.透明的技术,支持加密货币网络.不可替代代币 ...
- Python标准库:datetime 时间和日期模块 —— 时间的获取和操作详解
datetime 时间和日期模块 datetime 模块提供了以简单和复杂的方式操作日期和时间的类.虽然支持日期和时间算法,但实现的重点是有效的成员提取以进行输出格式化和操作.该模块还支持可感知时区的 ...
- CF Round #687 Div2 简要题解
题面 A 可以发现,最远的几个人一定是 \((1, 1), (1, m), (n, 1), (n, m)\) 中的一个,直接计算即可. B 注意到颜色数量很少,直接暴力枚举最终的颜色后模拟即可. C ...
- Openfeign与Ribbon
Ribbon和OpenFeign我个人为其实算是两个东西,Ribbon侧重于做服务调用时的负载均衡,而OpenFeign侧重于面向接口进行服务调用. 在只引入Ribbon依赖的时候,可以使用restT ...
- Android中的多线程【转】
感谢大佬:https://www.cnblogs.com/zoe-mine/p/7954605.html 感谢大佬:https://blog.csdn.net/u014555121/article/d ...
- StringUtils.isBlank(str)和StringUtils.isEmpty(str)的区别
1.StringUtils.isEmpty(CharSequence cs)实现源码 public static boolean isEmpty(CharSequence cs) { return c ...
- 在linux下的mysql导入存储过程出现语法错误,需要在文件里加DELIMITER //
http://my.oschina.net/zerotime/blog/113126 Mysql命令行创建存储过程时,首先要输入分隔符 DELIMITER // CREATE PROCEDURE pr ...
- Spring Cloud 源码分析之OpenFeign
OpenFeign是一个远程客户端请求代理,它的基本作用是让开发者能够以面向接口的方式来实现远程调用,从而屏蔽底层通信的复杂性,它的具体原理如下图所示. 在今天的内容中,我们需要详细分析OpenFei ...