要查看linux系統日志,推薦使用journalctl和tail -f /var/log/messages兩個工具;1. journalctl適用于systemd系統,支持按時間、服務等過濾,命令如journalctl -u sshd或結合時間范圍過濾;2. tail -f適合傳統系統或快速監控整體日志,常用命令為tail -f /var/log/messages并可配合grep過濾;3. 新系統優先選journalctl,老舊或嵌入式設備可用tail;4. 兩者可同時使用以提高排查效率。
查看linux系統日志是排查問題、監控運行狀態的重要手段。在實際操作中,journalctl和tail -f /var/log/messages是比較常用的兩個工具,它們各有特點,適用于不同場景。
一、journalctl:新一代日志管理利器
journalctl是systemd系統下的核心日志工具,它不僅記錄了內核和系統服務的日志,還支持按時間、服務、優先級等多種方式過濾,功能非常強大。
常用技巧:
-
查看全部日志:
journalctl
-
查看最近一次啟動的日志:
journalctl -b
-
實時追蹤日志輸出(類似tail -f):
journalctl -f
-
查看特定服務的日志(比如sshd):
journalctl -u sshd
-
結合時間范圍過濾(例如查看今天凌晨2點到3點之間的日志):
journalctl --since "2025-04-05 02:00:00" --until "2025-04-05 03:00:00"
journalctl的優勢在于它直接對接systemd,不需要依賴傳統的日志文件路徑,適合那些使用systemd的現代Linux發行版。
二、tail -f /var/log/messages:傳統但實用的方式
雖然很多新系統已經轉向journald,但 /var/log/messages 或 /var/log/syslog(取決于發行版)依然是許多老運維人員的習慣選擇。
使用方法很簡單:
tail -f /var/log/messages
這條命令會持續輸出該文件新增的內容,適合監控系統整體運行情況,尤其是當你不確定具體是哪個服務出問題時。
幾點建議:
- 如果你發現 /var/log/messages 沒有內容,可能是日志服務沒有啟用或者配置了其他日志路徑。
- 可以配合 grep 使用,過濾關鍵信息:
tail -f /var/log/messages | grep sshd
- 注意權限問題,有些日志文件需要root權限才能訪問,記得加 sudo。
這種方式的優點是簡單直觀,適合快速查看系統級別的錯誤或警告信息。
三、兩者如何選擇?
如果你用的是較新的centos、ubuntu或Fedora系統,推薦優先使用journalctl,因為它更靈活、功能更強。但在某些嵌入式設備或老舊服務器上,可能還是得靠傳統的syslog文件。
有時候可以同時使用,比如一邊用journalctl -u nginx看nginx服務日志,另一邊用tail -f /var/log/nginx/access.log看訪問日志,這樣能更快定位問題。
基本上就這些。掌握好這兩個工具,大部分日常的日志查看需求都能滿足。