journalctl 日志查看方法

1  概述

日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息。Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf

journalctl功能强大,用法非常多。本文将介绍journalctl的相关使用方法。

2  journalctl 使用方法

 

.查看所有日志

默认情况下,只保存本次启动的日志

journalctl

.查看内核日志(不显示应用日志)

journalctl -k

.查看系统本次启动的日志

journalctl   -b

journalctl  -b  -0

.查看上一次启动的日志

需更改设置,如上次系统崩溃,需要查看日志时,就要看上一次的启动日志。

journalctl  -b -1

.查看指定时间的日志

journalctl --since="2012-10-3018:17:16"

journalctl --since "20 minago"

journalctl --since yesterday

journalctl --since"2015-01-10" --until "2015-01-11 03:00"

journalctl --since 09:00 --until"1 hour ago"

journalctl --since"15:15" --until now

.显示尾部的最新10行日志

journalctl  -n

.显示尾部指定行数的日志

查看的是/var/log/messages的日志,但是格式上有所调整,如主机名格式不一样而已

journalctl -n 20

.实时滚动显示最新日志

journalctl   -f

.查看指定服务的日志

journalctl  /usr/lib/systemd/systemd

.查看指定进程的日志

journalctl   _PID=1

.查看某个路径的脚本的日志

journalctl    /usr/bin/bash

.查看指定用户的日志

journalctl _UID=33  --since today

.查看某个Unit的日志

journalctl  -u nginx.service

journalctl  -u nginx.service  --since  today

.实时滚动显示某个Unit的最新日志

journalctl  -u nginx.service  -f

.合并显示多个Unit的日志

journalctl  -u nginx.service  -u php-fpm.service  --since today

​查看指定优先级(及其以上级别)的日志

日志优先级共有8级

0: emerg

1: alert

2: crit

3: err

4: warning

5: notice

6: info

7: debug

journalctl  -p err  -b

.不分页标准输出

日志默认分页输出--no-pager改为正常的标准输出

journalctl  --no-pager

.以JSON格式(单行)输出

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgramming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java,JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。

JSON建构于两种结构:

“名称/值”对的集合(A collection ofname/value pairs):不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组(associativearray)。

值的有序列表(An ordered list of values):在大部分语言中,它被理解为数组(array)。

这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。

例子

以JSON格式(单行)输出

journalctl  -b -u httpd.service  -o json

.以JSON格式(多行)输出,可读性更好,建议选择多行输出

journalctl  -b -u httpd.service  -o json-pretty

.显示日志占据的硬盘空间

journalctl  --disk-usage

.指定日志文件占据的最大空间

journalctl   --vacuum-size=1G

.指定日志文件保存多久

journalctl   --vacuum-time=1years



作者:ghbsunny
链接:https://www.jianshu.com/p/bb51eee23820
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

转载于:https://www.cnblogs.com/leigepython/p/10302056.html

### Journalctl 日志管理工具使用教程 #### 实时查看日志 为了实现实时查看日志的变化,可以使用 `-f` 选项来持续跟踪最新的日志条目。这功能对于调试服务或解决问题特别有用[^1]。 ```bash sudo journalctl -f ``` #### 控制日志存储参数 Journalctl 提供了多种配置项用于控制日志的磁盘和内存使用情况: - **系统级磁盘使用限制**:通过 `SystemMaxUse=`, `SystemKeepFree=` 和其他以“System”开头的指令设置 `/var/log/journal/` 下的日志总量上限以及保持自由空间的比例。这些设定只有当指定路径存在并允许写入操作时才生效[^2]。 - **运行时环境下的资源管控**:针对临时性的日志记录,默认存放在 `/run/log/journal/` 中的数据可以通过诸如 `RuntimeMaxUse=` 这样的带有“Runtime”的前缀命令来进行约束。 #### 查看特定条件的日志 要获取更精确的信息,可以根据不同的筛选标准提取所需的内容: - 利用优先级过滤器定位到感兴趣的事件等级,比如只显示错误(`err`)级别的消息或者某单一服务产生的通知(`info`)[^4]: ```bash journalctl -p err ``` 或者结合单元名称和服务级别一起检索: ```bash journalctl -u service_name.service -p info ``` #### 查询当前日志占用的空间量 想要了解目前所有已归档加活动状态中的日志总共占用了多少硬盘容量,则执行如下命令即可得到统计结果[^5]: ```bash journalctl --disk-usage ``` 上述内容涵盖了 journalctl 的基本用途及其一些重要的特性描述,帮助理解如何有效地管理和监控 Linux 系统上的日志信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值