Web-Server

輪換 tux Web 伺服器日誌文件的推薦方式

  • June 19, 2009

我正在考慮將 Tux 作為我正在建構的新 CPAN 鏡像的 Web 伺服器。我已經讓它執行起來了,而且速度非常快,但有一個很大的問題:我應該如何輪換日誌文件?

日誌文件是可配置的,我使用的是 /var/log/tux 的預設值。

一種選擇是複制和截斷;例如:

cp /var/log/tux /var/log/tux.1
cat /dev/null > /var/log/tux

logrotate 應用程序可以為我做到這一點,但由於日誌文件是二進製文件,我擔心這可能會在某些時候導致損壞。

如果它只損壞一個條目,我可以忍受它——我擔心整個日誌文件可能會失去。

有經驗的大神可以給點建議嗎?

謝謝

你可以嘗試這樣的事情,我寫它來滾動我的 nginx 日誌。我查找了有關tux使用者空間程序的一些詳細資訊,但找不到任何方法讓它重新打開它的日誌,因此您可能不得不求助於停止和啟動該程序。

#!/bin/bash

YEAR=`date "+%Y"`
MONTH=`date "+%m"`
DAY=`date "+%d"`

HOSTNAME=`hostname -s`

LOG_FILES="access.log error.log images.log redirect.log ssl.log click.log uploads.log urchin.log user_sites.log"

DATE=$YEAR/$MONTH/$DAY

LOG_ROOT=/var/log/
NGINX_LOG_ROOT=$NGINX_LOG_ROOT/nginx

# make path

mkdir -p $NGINX_LOG_ROOT/$DATE

# touch and symlink in new log files

for FILE in $LOG_FILES; do
   LOG_FILE=$NGINX_LOG_ROOT/$DATE/$HOSTNAME.$FILE
   touch $LOG_FILE
   ln -fs $LOG_FILE $NGINX_LOG_ROOT/$FILE
done

# tell nginx to re-open its log files

kill -USR1 `cat /var/run/nginx.pid`

引用自:https://serverfault.com/questions/28521