Shell-Script

squid access.log 刪除超過 6 個月的條目

  • September 17, 2013

Squid 生成使用者訪問站點的日誌。我想刪除/var/squid/logs/access.log6 個月以上的條目。

我每週都會執行腳本。我想到了一個 perl 腳本或任何類似的腳本。

以下是access.log外觀:

在此處輸入圖像描述

條目生成如下:

IP - - [15/Oct/2011:02:04:32 -400]

此問題的通常解決方案是使用輪換日誌文件,以便目前日誌文件僅包含目前條目,而不是從文件中刪除過時的條目。

這一切都由logrotate程序處理。以下配置應該大致完成您想要的。它將保留最近 6 個月的日誌條目/var/squid/logs/access.log,每週輪換文件。

/var/squid/logs/access.log {
   weekly
   rotate 26
   missingok
   nocreate
   sharedscripts
   postrotate
       test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
   endscript
}

如果您確實關心日誌文件中的數據,則不應修改它們。

引用自:https://unix.stackexchange.com/questions/90859