journalctl 是一个用于查询和显示系统日志的工具,它是 systemd 日志系统的一部分。通过 journalctl,你可以查看系统启动日志、服务日志、内核日志等。以下是一些常用的 journalctl 命令和选项:
基本用法
查看所有日志:
sudo journalctl
这会显示所有的系统日志,从最早到最新的顺序。
查看最新的日志:
sudo journalctl -e
这会显示日志的末尾部分,通常是最新的日志条目。
按时间过滤日志:
sudo journalctl --since "2023-10-01 00:00:00" --until "2023-10-02 23:59:59"
这会显示指定时间范围内的日志。
查看特定服务的日志:
sudo journalctl -u service_name
例如,查看 nginx 服务的日志:
sudo journalctl -u nginx
查看内核日志:
sudo journalctl -k
这会显示与内核相关的日志。
查看启动日志:
sudo journalctl -b
这会显示当前启动周期的日志。你可以使用 -b -1 查看上一次启动的日志,-b -2 查看上上次启动的日志,以此类推。
实时查看日志:
sudo journalctl -f
这会实时显示最新的日志条目,类似于 tail -f 的效果。
按优先级过滤日志:
sudo journalctl -p err
这会显示所有错误级别的日志。你可以使用以下优先级:
emerg (0)
alert (1)
crit (2)
err (3)
warning (4)
notice (5)
info (6)
debug (7)
导出日志:
sudo journalctl > logfile.txt
这会将日志导出到一个文件中,方便后续分析。
高级用法
查看特定进程的日志:
sudo journalctl _PID=1234
这会显示进程 ID 为 1234 的日志。
查看特定用户的日志:
sudo journalctl _UID=1000
这会显示用户 ID 为 1000 的用户的日志。
查看特定设备的日志:
sudo journalctl /dev/sda
这会显示与 /dev/sda 设备相关的日志。
其他常用选项
-n:显示最近的日志条目。例如,journalctl -n 20 显示最近的 20 条日志。
--no-pager:直接输出日志而不使用分页器(如 less)。
--disk-usage:显示日志占用的磁盘空间。
--vacuum-size=:清理日志文件,使其不超过指定大小。例如,journalctl --vacuum-size=100M 会将日志文件大小限制在 100MB 以内。
通过结合这些选项,你可以更灵活地查看和分析系统日志,帮助你诊断和解决问题。
评论