Top過去ログ目次掲示板

作成日:2005年07月13日 作成:おやじ
掲示板で過去に質問された内容です。

No.4931 Apache2のアクセスログ


No.4931 投稿時間:2005年07月13日(Wed) 14:21 投稿者名:miyagi URL:
タイトル:Apache2のアクセスログ

いつも、サイトの運営お疲れさまです。
Apache2のログについて質問があるのでお願いします。

ログは[logs]の中にあると思うのですが
現在はどうやら、
アクセスログはaccess_log
エラーログはerror_log
に書かれてるみたいなのです。
これを日付ごとに取るようにすることはできるのでしょうか?

例えば
[2005.07.13]access_log
[2005.07.14]access_log
みたいに。

日付ごと(日が変わる事に新しいログ)というようになると、管理もしやすくなると考えました。

よろしくお願いします。


No.4932 投稿時間:2005年07月13日(Wed) 22:40 投稿者名:おやじ URL:
タイトル:後ろなら簡単。

> ログは[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. }


No.4935 投稿時間:2005年07月14日(Thu) 00:02 投稿者名:miyagi URL:
タイトル:Re: 後ろなら簡単。

おやじさん、こんばんは。
せっかくアドバイスをいただいたのにどのファイルを修正すればいいのかわかりません。
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. }


No.4937 投稿時間:2005年07月14日(Thu) 20:08 投稿者名:おやじ URL:
タイトル:Linuxの例なので無視してください。

> おやじさん、こんばんは。
> せっかくアドバイスをいただいたのにどのファイルを修正すればいいのかわかりません。
> httpd.confではないのでしょうか。
> 当方、WindowsでApache_2.0.54-Openssl_0.9.7f-Win32を使ってます。

Linuxの例なので無視してください。OSを確認しなかったおやじのミスです。
「windows log ローテーション」で検索すればいろいろ出てきます。


No.4945 投稿時間:2005年07月19日(Tue) 05:45 投稿者名:くま URL:
タイトル:Re: 後ろなら簡単。

横レスすいません。
以下についてなのですが

> 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 で処理させてます
これだと正常にいってます。

何かわかりましたらアドバイスよろしくおねがいします。



掲示板▲頁先頭