日志管理
使用 status
只能看到最后的10条日志,如果想要看到完整的日志使用 journalctl -u flasky
, 加上 -f
实时滚动。实际上 journalctl
是用来查看全部的 Linux 系统启动服务日志的,配置文件在 /etc/systemd/journald.conf
之前使用 dmesg
查看系统启动日志 使用 journalctl
也可以用来查看启动日志,journalctl -k
只看内核日志。
# 查看所有日志(默认情况下 ,只保存本次启动的日志) $ sudo journalctl
# 查看内核日志(不显示应用日志) $ sudo journalctl -k
# 查看系统本次启动的日志 $ sudo journalctl -b $ sudo journalctl -b -0
# 查看上一次启动的日志(需更改设置) $ sudo journalctl -b -1
# 查看指定时间的日志 $ sudo journalctl --since="2012-10-30 18:17:16" $ sudo journalctl --since "20 min ago" $ sudo journalctl --since yesterday $ sudo journalctl --since "2015-01-10" --until "2015-01-11 03:00" $ sudo journalctl --since 09:00 --until "1 hour ago"
# 显示尾部的最新10行日志 $ sudo journalctl -n
# 显示尾部指定行数的日志 $ sudo journalctl -n 20
# 实时滚动显示最新日志 $ sudo journalctl -f
# 查看指定服务的日志 $ sudo journalctl /usr/lib/systemd/systemd
# 查看指定进程的日志 $ sudo journalctl _PID=1
# 查看某个路径的脚本的日志 $ sudo journalctl /usr/bin/bash
# 查看指定用户的日志 $ sudo journalctl _UID=33 --since today
# 查看某个 Unit 的日志 $ sudo journalctl -u nginx.service $ sudo journalctl -u nginx.service --since today
# 实时滚动显示某个 Unit 的最新日志 $ sudo 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 $ sudo journalctl -p err -b
# 日志默认分页输出,--no-pager 改为正常的标准输出 $ sudo journalctl --no-pager
# 以 JSON 格式(单行)输出 $ sudo journalctl -b -u nginx.service -o json
# 以 JSON 格式(多行)输出,可读性更好 $ sudo journalctl -b -u nginx.serviceqq -o json-pretty
|
在 Linux 运行一段时间之后,journalctl 的日志占用会非常巨大,达到数G,日志文件在 /var/log/journal
下。可以查看日志文件大小,并做清理。
# 显示日志占据的硬盘空间 $ sudo journalctl --disk-usage Archived and active journals take up 3.8G on disk.
# 指定日志文件占据的最大空间 $ sudo journalctl --vacuum-size=1G
# 指定日志文件保存多久 $ sudo journalctl --vacuum-time=1years
# 仅保留最近两天的数据 $ sudo journalctl --vacuum-time=2d
# 对日志做校验 $ sudo journalctl --verify
|