journalctl
journalctl
journalctl是一个在Linux系统中用于查询和管理systemd日志的命令。systemd是许多现代Linux发行版(如Fedora、CentOS 7+、Ubuntu 15.04+等)的初始化系统和服务管理器,它收集并管理系统的日志。journalctl允许用户查询和管理这些日志
基本用法
查看所有日志:不带任何参数时,journalctl会显示所有的日志记录。
查看最新日志:使用-n参数可以指定显示的日志条数,例如journalctl -n 10会显示最近的10条日志。
实时跟踪日志:使用-f参数可以实时跟踪最新的日志输出,类似于tail -f命令。
常用选项
-u UNIT或--unit=UNIT:显示指定服务单元的日志。
-p PRIORITY或--priority=PRIORITY:根据日志的优先级过滤日志。
-b BOOT_ID或--boot=BOOT_ID:显示指定启动ID的日志。
-k或--dmesg:仅显示内核消息。
--since=DATE和--until=DATE:显示指定日期范围内的日志。
-o export:以可移植的事件日志格式导出日志。
-r或--reverse:反向输出日志,最新的日志会显示在最上面。
--grep=PATTERN:只显示包含特定模式的日志行
高级用法
- 按时间过滤:
可以使用--since和--until参数指定时间范围,支持绝对时间和相对时间。
- 按服务/单元过滤:使用-u参数可以查看特定服务的日志
例如
journalctl -u nginx.service #查看nginx服务的日志
按优先级过滤:使用-p参数可以过滤特定优先级的日志,例如journalctl -p err显示错误及以上级别的日志。
按进程ID过滤:使用_PID=PID参数可以查看特定进程的日志,例如journalctl _PID=1234。
反向排序:使用-r或--reverse参数可以反向输出日志。
按关键词搜索:可以使用管道符和grep命令搜索包含特定关键字的日志,例如journalctl | grep "关键词"