一直以來, 都是用 newsyslog 來做 squid 的 log ratation.

newsyslog 沒特別指定的話, 在 mv log 之後是送 SIGHUP 出去,

而 squid 在收到 SIGHUP 的時候會做 reconfigure.

然後就會有一小段時間不接客 @@

因為問題不大, 所以一直沒認真找正解,

後來發現正確的作法是送SIGUSR1(30)才對,

所以就把 newsyslog.conf 改成送 SIGUSR1, 結果變成跑出一個 access.1.gz 以及一個 access.0

會造成的這樣的原因是因為 squid 收到 SIGUSR1 就會自己 rotate 了, 並不只是單純 reopen log file :P

所以正解之一應該是cron做類似以下的動作:
0 0 * * * /usr/bin/killall -30 squid
然後搭配一個 find 去砍掉太久的 log

不過若希望壓縮..那就得把squid.conf的logfile_rotate設成0,
然後讓newsyslog去處理log rotate and 壓縮, 並送SIGUSR1(30)給squid

Izero 發表在 痞客邦 PIXNET 留言(0) 人氣()