journalctl
大约 2 分钟
journalctl
1.查看服务的最新日志
# 基本格式
journalctl -u service-name
# 实际示例
journalctl -u nginx.service
journalctl -u docker.service
2.实时查看日志(类似 tail -f)
# 持续查看最新日志
journalctl -u service-name -f
# 查看最新的50行并持续追踪
journalctl -u service-name -n 50 -f
3.查看特定时间段的日志
# 查看今天的日志
journalctl -u service-name --since today
# 查看特定时间范围的日志
journalctl -u service-name --since "2024-01-01 00:00:00" --until "2024-01-02 00:00:00"
# 查看最近1小时的日志
journalctl -u service-name --since "1 hour ago"
4.查看启动时的日志
# 查看系统本次启动的日志
journalctl -u service-name -b
# 查看上次启动的日志
journalctl -u service-name -b -1
5.按照不同输出格式查看
# 输出简短信息
journalctl -u service-name -o short
# 输出详细信息
journalctl -u service-name -o verbose
# JSON格式输出
journalctl -u service-name -o json
# JSON格式且每行一个条目
journalctl -u service-name -o json-pretty
6.查看最近的日志条目
# 查看最后100行
journalctl -u service-name -n 100
# 查看最后200行
journalctl -u service-name -n 200
7.反向输出日志(最新的先显示)
journalctl -u service-name -r
8.查看系统启动时间
systemctl status
# 查看启动耗时
systemd-analyze
# 查看每个服务的启动耗时
systemd-analyze blame
9.结合 grep 使用
# 搜索包含特定关键字的日志
journalctl -u service-name | grep "error"
# 使用不区分大小写的搜索
journalctl -u service-name | grep -i "error"
实用技巧:
1.清理旧日志
# 只保留最近两天的日志
journalctl --vacuum-time=2d
# 只保留500M的日志
journalctl --vacuum-size=500M
2.查看日志占用空间
journalctl --disk-usage
3.导出日志
# 导出到文件
journalctl -u service-name > service-logs.txt
# 导出最近1000行
journalctl -u service-name -n 1000 > recent-logs.txt
4.组合使用多个选项
# 查看最近一小时的错误日志
journalctl -u service-name --since "1 hour ago" -p err
# 实时查看错误日志
journalctl -u service-name -p err -f