journalctl是Linux系统中用于查看和管理日志的核心工具,尤其在基于systemd的系统(如Ubuntu、CentOS、Fedora等)中,它是分析系统和服务日志的“瑞士军刀”。对于新手而言,掌握journalctl能快速定位系统故障、服务崩溃或性能问题。本文将用通俗易懂的语言,从基础到实践,带你快速上手journalctl。
journalctl是systemd日志系统(称为journald)的日志查看工具。它统一管理系统的所有日志,包括:
与传统的日志文件(如/var/log/syslog)不同,journalctl支持结构化查询和多维度过滤,让日志分析更高效。
输入以下命令,显示系统所有日志(按时间倒序排列):
journalctl
journalctl -b
journalctl --since "1 hour ago"
journalctl --since "2025-04-29 09:00:00" --until "2025-04-29 10:00:00"
journalctl -u nginx.service
三、常用参数与场景
假设nginx服务启动失败,查看其详细日志:
journalctl -u nginx.service --since "10 minutes ago"
系统突然死机,重启后查看上次启动的日志:
journalctl -b -1 # -b -1表示上一次启动
实时跟踪所有错误级别(error及以上)的日志:
journalctl -p err -f
root@jeven01:~# journalctl _PID=585853 Apr 29 06:51:09 jeven01 sshd[585853]: Accepted password for root from 192.168.3.101 port 64052 ssh2 Apr 29 06:51:09 jeven01 sshd[585853]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
journalctl -u mysql.service -p err
将日志保存为文本文件(方便分享或进一步分析):
journalctl --since "2025-04-01" > ~/mylog.txt
root@jeven01:~# cat mylog.txt | head -n 10 Apr 10 09:32:04 jeven01 systemd-resolved[683]: Clock change detected. Flushing caches. Apr 10 09:32:04 jeven01 systemd[1]: Starting Daily apt download activities... Apr 10 09:32:04 jeven01 systemd[1]: Starting Daily dpkg database backup service... Apr 10 09:32:04 jeven01 systemd[1]: Starting Online ext4 Metadata Check for All Filesystems... Apr 10 09:32:04 jeven01 systemd[1]: Starting Discard unused blocks on filesystems from /etc/fstab... Apr 10 09:32:04 jeven01 systemd[1]: Starting Refresh fwupd metadata and update motd... Apr 10 09:32:04 jeven01 systemd[1]: Starting Message of the Day... Apr 10 09:32:04 jeven01 systemd[1]: Starting Rotate log files... Apr 10 09:32:04 jeven01 systemd[1]: Starting Daily man-db regeneration... Apr 10 09:32:04 jeven01 systemd[1]: dpkg-db-backup.service: Deactivated successfully.
journalctl --disk-usage
journalctl --vacuum-size=500M
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!