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 系統日誌清理指南:常見日誌檔案、清空方法與 logrotate 自動化

編輯:Linux 教學

Linux 系統運行久了,/var/log 下日誌檔案會佔用大量磁碟空間。本文列出常見日誌用途、手動清理指令、logrotate 自動化配置與最佳實踐。

常見系統日誌檔案與用途

檔案記錄內容
/var/log/messages系統核心訊息、服務啟動錯誤(Syslog 主要輸出)
/var/log/secure安全相關:登入嘗試、sudo、SSH 認證
/var/log/maillog郵件服務收發記錄
/var/log/cron定時任務執行記錄
/var/log/boot.log開機過程服務啟動狀態
/var/log/dmesg核心環緩衝區(硬體偵測、驅動載入)
/var/log/wtmp歷史登入記錄(last 指令讀取)
/var/log/btmp失敗登入記錄(lastb 指令讀取)
/var/log/lastlog每個用戶最近一次成功登入
/var/log/xferlogFTP 傳輸記錄
/var/log/httpd/access_logApache 存取日誌
/var/log/httpd/error_logApache 錯誤日誌

手動清理方法

1. 清空單一檔案(保留檔案結構)

> /var/log/messages
# 或
cat /dev/null > /var/log/messages
# 或
truncate -s 0 /var/log/messages

2. 刪除舊歸檔(*.1, *.2, *.gz)

find /var/log -type f -name "*.[0-9]" -delete
find /var/log -type f -name "*.gz" -delete

3. 危險操作:刪除所有日誌(不建議)

find /var/log -type f -exec rm -v {} \;
# 會導致服務無法寫入日誌,需重啟相關服務或重建檔案

logrotate 自動化輪轉配置(推薦)

主配置 /etc/logrotate.conf,服務別配置置於 /etc/logrotate.d/。

範例:/etc/logrotate.d/syslog

/var/log/messages /var/log/secure /var/log/maillog /var/log/cron {
    daily                    # 每天輪轉
    missingok                # 檔案不存在不報錯
    rotate 4                 # 保留 4 個舊檔
    compress                 # 壓縮舊檔
    delaycompress            # 延後一天壓縮
    notifempty               # 空檔不輪轉
    create 0640 root utmp    # 建立新檔權限
    sharedscripts            # 共用腳本
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2>/dev/null` 2>/dev/null || true
    endscript
}

關鍵指令說明

  • daily/weekly/monthly:輪轉頻率。
  • rotate N:保留 N 個備份。
  • compress/delaycompress:gzip 壓縮。
  • size 100M:超過大小強制輪轉(可與時間結合)。
  • postrotate/endscript:輪轉後執行命令(如 reload 服務)。

驗證與強制執行

logrotate -d /etc/logrotate.conf   # 測試模式(不實際操作)
logrotate -f /etc/logrotate.conf   # 強制執行

最佳實踐建議

  • **不要手動 rm 日誌檔**,改用 > 清空或配置 logrotate。
  • 關鍵日誌(secure, audit)保留期建議 ≥ 6 個月,配合集中日誌伺服器(rsyslog/ELK)歸檔。
  • 高頻日誌(access_log)設定 size 100M + daily 雙重觸發。
  • 定期檢查 /var/log 磁碟使用量:du -sh /var/log。
Copyright © Windows教程網 All Rights Reserved