journalctl 是一个用于查询和显示 systemd 日志的命令行工具。以下是一些常用的 journalctl 命令和选项,帮助你查看和分析系统日志:
查看所有日志
journalctl
查看最近的日志条目
journalctl -n 100 # 查看最近的100条日志
实时查看日志更新
journalctl -f # 实时跟踪日志输出
查看特定服务的日志
journalctl -u <service_name> # 替换 <service_name> 为服务名
查看特定时间段的日志
journalctl --since "2023-04-01" --until "2023-04-30"
查看特定启动的日志
journalctl -b -1 # 查看上一次启动的日志
journalctl -b # 查看当前启动的日志
按关键字搜索日志
journalctl | grep "error" # 在所有日志中搜索包含 "error" 的行
journalctl -u <service_name> | grep "error" # 在特定服务的日志中搜索
查看特定优先级的日志
journalctl -p err # 查看错误级别的日志
journalctl -p crit # 查看严重错误级别的日志
查看特定用户的日志
journalctl _UID=<user_id> # 替换 <user_id> 为用户ID
查看特定进程的日志
journalctl _PID=<process_id> # 替换 <process_id> 为进程ID
保存日志到文件
journalctl -o short-iso > logs.txt
压缩日志文件
journalctl -o short-iso | gzip > logs.txt.gz
查看特定内核版本的日志
journalctl -b -1 | grep "Linux version"
查看特定硬件设备的日志
journalctl -k | grep "i915" # 替换 i915 为硬件设备名称
查看特定内核模块的日志
journalctl -k | grep "module_name" # 替换 module_name 为内核模块名称
假设你想查看 nginx 服务的最近日志,并且只显示错误级别的日志:
journalctl -u nginx -p err
如果你想实时跟踪 nginx 服务的日志更新:
journalctl -u nginx -f
通过这些命令和选项,你可以灵活地查看和分析系统日志,帮助你诊断和解决问题。