系统日志查看journalctl命令详解
简介
从2012年开始,大部分linux发行版本开始从传统的systemv 初始化系统移植到一个叫做systemd的全新系统。systemd用来启动系统并管理进程。systemd包含了一个叫做journalctl的辅助组件,其主要作用是管理系统的事件日志记录。
journalctl可以查看所有的系统日志文件,由于日志信息量很大,journalctl还提供了各种参数帮助用户更快速的定位到日志信息。默认情况下,用户都可以访问自己的日志。对于系统主日志和其他用户的日志,仅限于有权限的用户访问,比如root用户,wheel组和systemd组的用户。
该工具是从message这个文件里读取信息。Systemd统一管理所有Unit的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf
journalctl功能强大,用法非常多。本文将介绍journalctl的相关使用方法。
journalctl
如果不带参数,journalctl将显示所有日志的信息。 (从旧到新)
journalctl -r
-r参数表示反序输出,(从新到旧)
journalctl -k
查看内核日志(不显示应用日志)
journalctl -f
要使用 journalctl 跟踪日志文件 (读取最新条目), 只需在命令后加参数 “-f” 即可。
会实时滚动显示最新日志信息。
journalctl -n num
指定输出显示行数的大小;我们可以通过-n 或者 --lines=参数来指定显示的行数大小。
显示指定时间的事件日志
journalctl可以显示指定时间段内发生的事件日志。 通过since和until 参数来实现。其中日期的格式是
“YYYY-MM-DD HH:MM:SS”
比如:journalctl --since "1 hour ago"
,查看1小时前到现在的日志
journalctl --since “2016-08-04 20:00:00” --until “2016-08-04 20:15:00”
查看8月4日晚上的日志
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
journalctl -u *.service
查看某些服务的日志:
journalctl -u httpd.service
查看web服务的日志;journalctl -u httpd.service -u crond.service
合并显示多个Unit的日志
journalctl -u nginx.service -u php-fpm.service --since today
查看某个路径的脚本的日志
[root@NercAuth ~]# journalctl /home/docker/001.mssql/DB_Backup.sh
-- No entries --
查看指定优先级(及其以上级别)的日志
日志优先级共有8级
journalctl -p err -b
Level | Description |
---|---|
0 | emerg |
1 | alert |
2 | crit |
3 | err |
4 | warning |
5 | notice |
6 | info |
7 | debug |
不分页标准输出
日志默认分页输出--no-pager
改为正常的标准输出
journalctl --no-pager
显示日志占据的硬盘空间
journalctl --disk-usage
指定日志文件占据的最大空间
journalctl --vacuum-size=1G
指定日志文件保存多久
journalctl --vacuum-time=1years
评论区