journalctl

Systemd 统一管理所有 Unit 的日志。journalctl 查看所有日志(内核日志和应用日志)。

配置文件是

1
/etc/systemd/journald.conf

查看所有日志

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

1
sudo journalctl

查看内核日志

不显示应用日志

1
sudo journalctl -k

查看系统本次启动的日志

1
sudo journalctl -b

1
sudo journalctl -b -0

查看上一次启动的日志

需更改设置

1
sudo journalctl -b -1

查看指定时间的日志

1
sudo journalctl --since="2012-10-30 18:17:16"
1
sudo journalctl --since "20 min ago"
1
sudo journalctl --since yesterday
1
sudo journalctl --since "2015-01-10" --until "2015-01-11 03:00"
1
sudo journalctl --since 09:00 --until "1 hour ago"

显示尾部的最新10行日志

1
sudo journalctl -n

显示尾部指定行数的日志

1
sudo journalctl -n 20

实时滚动显示最新日志

1
sudo journalctl -f

查看指定服务日志

1
sudo journalctl /usr/lib/systemd/systemd

查看指定进程日志

1
sudo journalctl _PID=1

查看某个路径的脚本日志

1
sudo journalctl /usr/bin/bash

查看指定用户日志

1
sudo journalctl _UID=33 --since today

查看某个 Unit 的日志

1
sudo journalctl -u nginx.service

带时间范围控制

1
sudo journalctl -u nginx.service --since today

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

1
sudo journalctl -u nginx.service -f

合并多个 Unit 的日志

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

查看指定优先级日志

1
sudo journalctl -p err -b

共有8级

  1. emerg
  2. alert
  3. crit
  4. err
  5. warning
  6. notice
  7. info
  8. debug

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

1
sudo journalctl --no-pager

JSON 输出 (单行)

1
sudo journalctl -b -u nginx.service -o json

JSON 输出 (多行)

1
sudo journalctl -b -u nginx.serviceqq -o json-pretty

日志文件占用硬盘空间

1
sudo journalctl --disk-usage

指定日志文件最大空间

1
sudo journalctl --vacuum-size=1G

指定日志文件保留时长

1
sudo journalctl --vacuum-time=1years