フタなしカンヅメ

徒然なるままに @happytar0

Awstatsでlogresolvemerge.plを使う

Awstatsで複数のログファイルをマージするために、付属のlogresolvemerge.plを使っていましたが、ある時を境にエラーが出るようになりました。
記録するのを忘れてしまったのですが、以下のようなエラーだったと思います。

Error Command for pipe logresolvemerge.pl

logresolvemerge.plを直接実行してみたところ、「ファイルを開きすぎです」と出てきました。そんなにファイル開いてるのか?と思ったのですが、開くファイル数や現在開いているファイル数などは、以下のようにして調べることができるようです。

# cat /proc/sys/fs/file-max
366343
# cat /proc/sys/fs/file-nr
2112	0	366343

file-maxの数字を書き換えることで、上限を変更できるそうです。

書き換えたりしたものの改善せず、よく考えているとlogresolvemerge.plには以下のようにして指定していました。

LogFile="/opt/awstats/tools/logresolvemerge.pl /home/www/logs/www.* |"

これだと毎回全てのログファイルを読みにいってしまいますので、以下のように変更してみました。

LogFile="find /home/www/logs/www.* -mtime -1 -type f -print | xargs /opt/awstats/tools/logresolvemerge.pl $1 |"

参考
404 Not Found