LinuxMastery
•
•
By asdlkfj
LinuxMastery 16: 日誌查詢 journalctl
Systemd 的日誌中心
傳統 Linux 的 Log 分散在 /var/log/ 下的各個文字檔。Systemd 引入了 journald,將所有服務的 Log 統一收集並以二進位格式儲存。這讓搜尋和過濾變得非常強大。
核心指令詳解
基本查看:
journalctl這會列出從開機以來的所有 Log,通常太長了。
即時追蹤 (類似 tail -f):
journalctl -f依服務過濾:
# 只看 sshd 服務的 Log journalctl -u sshd依時間過濾:
# 查看最近一小時的 Log journalctl --since "1 hour ago" # 查看特定時間段 journalctl --since "2023-10-01 10:00:00" --until "2023-10-01 11:00:00"只看錯誤訊息:
journalctl -p err-p(priority) 可以過濾等級,如 err, warning, info。
實戰心法
Journald 預設會佔用不少硬碟空間。你可以檢查 /var/log/journal 的大小。如果太大,可以使用以下指令清理:
# 只保留最近 500MB 的 Log
journalctl --vacuum-size=500M
# 只保留最近 2 天的 Log
journalctl --vacuum-time=2d
這對於硬碟空間較小的雲端主機非常實用。