いつも、サイトの運営お疲れさまです。
Apache2のログについて質問があるのでお願いします。
ログは[logs]の中にあると思うのですが
現在はどうやら、
アクセスログはaccess_log
エラーログはerror_log
に書かれてるみたいなのです。
これを日付ごとに取るようにすることはできるのでしょうか?
例えば
[2005.07.13]access_log
[2005.07.14]access_log
みたいに。
日付ごと(日が変わる事に新しいログ)というようになると、管理もしやすくなると考えました。
よろしくお願いします。
> ログは[logs]の中にあると思うのですが > 現在はどうやら、 > アクセスログはaccess_log > エラーログはerror_log > に書かれてるみたいなのです。 > これを日付ごとに取るようにすることはできるのでしょうか? > > 例えば > [2005.07.13]access_log > [2005.07.14]access_log > みたいに。 > > 日付ごと(日が変わる事に新しいログ)というようになると、管理もしやすくなると考えました。 頭に日付を入れるのは面倒ですが、後ろに入れるだけなら簡単です。下記はFC3の例です。 これは、logrotateした一日前の日付を入れる例で、access_log.20050712 のようになります。 2,7,8,9,10行を追加。notifemptyはログがないとエラーになるので削除して空でもrotateする ように変更。世代は、rotateで適当に指定。デフォルトはFC3なら4日。 頭の数字は説明用。 1. /var/log/httpd/*log { 2. daily 3. missingok 4. sharedscripts 5. postrotate 6. /bin/kill -USR1 `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true 7. DATE=`date --date '1 days ago' +%Y%m%d` 8. for infile in $1 ; do 9. mv $infile.1 $infile.$DATE; 10. done 11. endscript 12. }
おやじさん、こんばんは。
せっかくアドバイスをいただいたのにどのファイルを修正すればいいのかわかりません。
httpd.confではないのでしょうか。
当方、WindowsでApache_2.0.54-Openssl_0.9.7f-Win32を使ってます。
> 頭に日付を入れるのは面倒ですが、後ろに入れるだけなら簡単です。下記はFC3の例です。
> これは、logrotateした一日前の日付を入れる例で、access_log.20050712 のようになります。
> 2,7,8,9,10行を追加。notifemptyはログがないとエラーになるので削除して空でもrotateする
> ように変更。世代は、rotateで適当に指定。デフォルトはFC3なら4日。
> 頭の数字は説明用。
>
> 1. /var/log/httpd/*log {
> 2. daily
> 3. missingok
> 4. sharedscripts
> 5. postrotate
> 6. /bin/kill -USR1 `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
> 7. DATE=`date --date '1 days ago' +%Y%m%d`
> 8. for infile in $1 ; do
> 9. mv $infile.1 $infile.$DATE;
> 10. done
> 11. endscript
> 12. }
> おやじさん、こんばんは。
> せっかくアドバイスをいただいたのにどのファイルを修正すればいいのかわかりません。
> httpd.confではないのでしょうか。
> 当方、WindowsでApache_2.0.54-Openssl_0.9.7f-Win32を使ってます。
Linuxの例なので無視してください。OSを確認しなかったおやじのミスです。
「windows log ローテーション」で検索すればいろいろ出てきます。
横レスすいません。
以下についてなのですが
> 1. /var/log/httpd/*log {
> 2. daily
> 3. missingok
> 4. sharedscripts
> 5. postrotate
> 6. /bin/kill -USR1 `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
> 7. DATE=`date --date '1 days ago' +%Y%m%d`
> 8. for infile in $1 ; do
> 9. mv $infile.1 $infile.$DATE;
> 10. done
> 11. endscript
> 12. }
Fedora Core2においてファイル名が取れていないようなのです・・。
だいぶ前から悩んではいるんですが、
for infile in $1 ; do
mv $infile.1 $infile.$DATE;
done
の部分で処理するファイル名前をinfileに入れ処理させてますよね
でも実際こちらの環境で試すと名前がとれていないようで
うまく処理できないんです
現状 mv ファイル名.1 ファイル名.$DATE で処理させてます
これだと正常にいってます。
何かわかりましたらアドバイスよろしくおねがいします。