暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

systemd入门11:通过-b或boot参数来指定journalctl日志的时间

编程初学者 2021-09-23
815

我们之前的文章就有提到说:journal非常任劳任怨,不提任何要求。只要是经过它的日志,它都会照单全收。

所以只要磁盘空间足够,上个世纪的日志它都会给你保留。

时间一长,显然对于我们要经常查看日志的人来说,日志太多了,要找到真正对我们当前最有用的信息,往往花费的时间成本会比较高。不过 journalctl 也非常贴心地提供几个好用的工具,让我们在时间维度上,能够更有针对性地找到想要的日志。

先来聊聊第一个:--boot


参数:-b 即 --boot


万事开头难,man我最在行:


这个参数会在命令中,自动加入一个 "_BOOT_ID=" 的条件匹配,只有匹配成功的日志记录才会在结果中列出。


如果只加了参数,但是启动ID为空的话,比如下面这样,则默认指向本次启动所对应的日志。

journalctl -b
复制


除了可以传入启动ID以外,参数的值还可以传偏移量。


  • 偏移量为正:那么就会从journal中,有记录以来的第一次启动开始,指定第几次启动。比如+1指的就是在journal中,根据时间顺序寻找,能找到的第一次启动的相关日志。


  • 偏移量为负或0:从journal中,最后一次启动开始,以时间顺序倒查启动。比如0和-0指的都是当前启动。-1的话,指的就是上一次启动。


说了半天启动ID,我怎么样才能知道启动ID是多少呢?

启动ID是由32个字符构成的字符串,可以通过这个命令获取:

journalctl --list-boots
复制

左边第一列是相对于本次启动的逆序偏移,右边是32为字符构成的启动ID,再往右就是这行启动的起止时间。


我们以 ID:993610455a79421794ae82c6508848cc 这次启动为例,不要问为什么,问就是-8(富吧)吉利。


我们可以以这样几个方式去指定与这次启动相关的所有日志:


1、通过启动ID指定

journalctl -b 993610455a79421794ae82c6508848cc
复制


2、通过偏移指定

journalctl -b -8
复制


3、ID与偏移相结合的方式去指定,即给出的ID作为基准,去寻找相对于这次启动偏移的启动

journalctl -b f6af94d596594b87bcb967fdc4ae176f+1
复制


注意结尾的+1,表示启动ID为f6af94d596594b87bcb967fdc4ae176f的这次启动,之后的一次启动。

你也可以+2,+3,-1,-2等等,以此类推。


与-n结合使用的时候,显示的结果怪怪的。


-n 即 --lines,指定了输出结果要展示几行。默认是展示最后10行。


偏移为 -8 的这次启动的起止时间分别是8月22日 和 8月27日。


但是,如果我们给出 -n 的参数,比如 5000 ,那就是说,我们希望展示这次启动的最后5000条日志。


journalctl -b -8 -n 5000
复制


你会看到,输出的结果并不是 8月22日的日志,也不是8月27日的日志。而是8月26日的日志。


这是因为 -n 展示的是最近 5000 条数据,但是它展示的方式是正序的。所以,需要从8月27日最后一条日志,倒退5000条日志。拿这第5000条作为第一条展示输出。所以看到的前面几条都是前一天,也就是8月26日的。


如果想从8月27日开始看的话,我们可以加上 -r 参数,表示倒叙展示:


journalctl -b -8 -n 5000 -r
复制

以上内容就是通过-b参数来指定日志时间进行展示查询的全部内容。


如果觉得以上内容对您有所帮助,请您长按点赞、评论、转发支持哦。


我们下期不见不散。


文章转载自编程初学者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论