Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux tail 指令完整指南:即時追蹤日誌、顯示末 N 行、從第 N 行開始、多檔案監控

編輯:關於 Linux

tail 是日誌分析、即時監控的核心工具。本文系統整理參數、常用模式、進階技巧 (多檔追蹤、PID 結合、結合 grep/awk) 與實戰範例。

核心參數速查

參數說明範例
-n N, -N顯示最後 N 行 (預設 10)tail -n 20 /var/log/syslog
-c N顯示最後 N 位元組tail -c 1k access.log
-f, --follow即時追蹤檔案增長 (預設用 inotify)tail -f /var/log/nginx/access.log
-F-f --retry,檔案被旋轉/重建也會繼續追蹤tail -F /var/log/app.log
+N從第 N 行顯示到結尾tail -n +5 file.txt
-q, --quiet多檔案時不顯示檔名標頭tail -q -n 5 *.log
-v, --verbose強制顯示檔名標頭tail -v -n 5 file.log
--pid=PID配合 -f,指定 PID 結束時停止追蹤tail -f --pid=$$ log.txt
-s SEC, --sleep-interval追蹤輪詢間隔 (秒),預設 1.0tail -f -s 0.5 log.txt

經典使用場景

  1. 即時監控 Nginx 存取日誌
    tail -f /var/log/nginx/access.log | grep --line-buffered -E ' 404| 50[0-9]'
    
  2. 監控系統日誌關鍵字
    tail -F /var/log/messages | awk '/error|fail|critical/ {print strftime("%F %T"), $0}'
    
  3. 查看最後 100 行並持續追蹤
    tail -n 100 -f /var/log/mysql/slow.log
    
  4. 從第 50 行開始看完整檔案
    tail -n +50 large_log.txt | less
    
  5. 多檔案同時追蹤 (顯示檔名標頭)
    tail -f /var/log/nginx/*.log
    
  6. 結合 PID 自動停止 (腳本中)
    # 啟動背景程式
    my_daemon &
    DAEMON_PID=$!
    # 追蹤其日誌,程式結束自動停止 tail
    tail -f --pid=$DAEMON_PID /var/log/my_daemon.log
    

進階技巧

  • 色彩化輸出:tail -f log | ccze -A 或 grc tail -f log。
  • JSON 日誌美化:tail -f app.json.log | jq -c。
  • 跳過二進位檔案:tail -f /var/log/* 2>/dev/null (錯誤導向)。
  • 歷史 + 即時:tail -n 50 -f log 先看最近 50 行再追蹤。

常見問題

tail -f 不顯示新行
檔案可能被 logrotate 移動/重建,改用 tail -F (大寫 F) 會自動重新開啟新 inode。
權限不足
加 sudo 或將使用者加入 adm 群組 (usermod -aG adm $USER)。
大檔案效能
tail 只讀取檔案末端區塊,不載入整檔,效能極佳。

熟練 tail -f/-F、+N、--pid 等參數,讓日誌分析事半功倍。

Copyright © Windows教程網 All Rights Reserved