Files
Obsidian-Main/21.01. Linux/journalctl.md
Awin Huang afeb207be2 vault backup: 2025-08-20 14:35:48
Affected files:
Too many files to list
2025-08-20 14:35:48 +08:00

3.7 KiB
Raw Blame History

看log

Raspberry Pi 4沒有/var/log/syslog,要使用journalctl

journalctl

Or

journalctl | grep SOMETHING

看系統訊息

journalctl -p 0

Error code意思

0: 紧急情况
1: 警报
2: 危急
3: 错误
4: 警告
5: 通知
6: 信息
7调试

看開機log

journalctl --list-boots
  • 第一個數字顯示的是journald 的唯一的啟動追蹤號碼,你可以在下一個命令中使用它來分析該特定的啟動。
  • 第二個數字是啟動ID你也可以在指令中指定。
  • 接下來的兩個日期、時間組合是儲存在對應文件中的日誌的時間。如果你想找出某個特定日期、時間的日誌或錯誤,這就非常方便了。

例如:

journalctl -b -45

Or

journalctl -b 8bab42c7e82440f886a3f041a7c95b98

也可以使用 -x 選項在顯示器上加入systemd 錯誤訊息的解釋。在某些情況下,這是個救命稻草。例:

journalctl -xb -p 3

看某一特定時間、日期的日誌記錄

使用 --since 選項與 yesterdaytodaytomorrow 或 now 組合。

以下是一些不同指令的範例。你可以根據你的需求修改它們。它們是不言自明的。以下命令中的日期、時間格式為 "YYYY-MM-DD HH:MM:SS"

journalctl --since "2020-12-04 06:00:00"
journalctl --since "2020-12-03" --until "2020-12-05 03:00:00"
journalctl --since yesterday
journalctl --since 09:00 --until "1 hour ago"

看內核特定的記錄

journalctl -k

過濾出某個systemd 服務單元的特定日誌

例如,如果要查看 NetworkManager 服務的日誌

journalctl -u NetworkManager.service

如果不知道service namesystemd#列出系統中的 systemd service

查看使用者、群組的日誌

id -u debugpoint # 先找出使用者的uid
journalctl _UID=1000 --since today

查看可執行檔的日誌

journalctl /usr/bin/gnome-shell --since today

看log佔用的磁碟空間

journalctl --disk-usage

清除日誌

手動清除

sudo journalctl --flush --rotate # 將所有日誌歸檔
sudo journalctl --vacuum-time=7d # 只保留最近7天的日誌
sudo journalctl --vacuum-time=1s # 只保留最近1秒的日誌

或者設定日誌的大小

sudo journalctl --vacuum-size=400M # 保留最後400M

自動清除

修改/etc/systemd/journald.conf,裡面有下面幾個設定項:

  • SystemMaxUse: 指定日志在持久性存储中可使用的最大磁盘空间。例:SystemMaxUse=500M
  • SystemKeepFree: 指定在将日志条目添加到持久性存储时,日志应留出的空间量。例:SystemKeepFree=100M
  • SystemMaxFileSize: 控制单个日志文件在被轮换之前在持久性存储中可以增长到多大。例:SystemMaxFileSize=100M
  • RuntimeMaxUse: 指定在易失性存储中可以使用的最大磁盘空间(在 /run 文件系统内)。例:RuntimeMaxUse=100M
  • RuntimeKeepFree: 指定将数据写入易失性存储(在 /run 文件系统内)时为其他用途预留的空间数量。例:RuntimeMaxUse=100M
  • RuntimeMaxFileSize: 指定单个日志文件在被轮换之前在易失性存储(在 /run 文件系统内)所能占用的空间量。例:RuntimeMaxFileSize=200M

修改後記得重啟 journalctl !journalctl#重啟日誌

也請記得journalctl#確認日誌的完整性

確認日誌的完整性

journalctl --verify

重啟日誌

若是有改變設定,記得重啟以讓變更生效:

sudo systemctl restart systemd-journald

參考