- PR -

linuxのログローテートについて

1
投稿者投稿内容
tomo
会議室デビュー日: 2005/10/06
投稿数: 4
投稿日時: 2005-10-06 17:55
現状linux 2.4.20_mv31-ddb4131を使用してます。(モンタビスタlinuxです)
/var/logのsyslogやwtmpやkern.logのファイル肥大化を防ぐためログのローテート機能
を使おうと試してますがうまくいきません。
/etc/logrotate.confで1日単位でローテートされるかを確認するために
/var/log/wtmp{
missingok
daily
create 0664 root utmp
rotate 1
}
と設定し手動コマンドでsyslogのローテートをまず確認したく
/usr/sbin/logrotate /etc/logrotate.d/syslog
を実行したのですが/var/lib/logrotate/statusのリードエラーとなりました。
明らかにstatusは空ファイルで何も書かれてなくエラーとなるのですが
ここに日付(実行日以前の日付)を強引に書き込み必要があるのでしょうか?
または何か設定が間違っているでしょうか?
返答よろしくお願いします。
angel
ぬし
会議室デビュー日: 2005/03/17
投稿数: 711
投稿日時: 2005-10-06 18:19
こんにちは。
引用:
明らかにstatusは空ファイルで何も書かれてなくエラーとなるのですが
ここに日付(実行日以前の日付)を強引に書き込み必要があるのでしょうか?


ステータスファイルは、ローテート状況を把握し、かつ後日利用できるように、読み・書きができる必要があります。
もし、ファイルが存在しない場合は、最初の logrotate 実行時に作成されます。
空ファイルなのであれば、念のため削除してみるのも良いと思います。
引用:
/var/lib/logrotate/statusのリードエラーとなりました。


手元の FedoraCore1 環境では、-s オプション無しの場合の標準のステータスファイルは、“/var/lib/logrotate.status”だったのですが、tomo さんの環境では如何でしょうか?

もし、rpm ベースのシステムなら rpm -qc で、そうでなくとも、strings /usr/sbin/logrotate の出力から分かると思います。

ちなみに、logrotate を実行する時には、-d ( デバッグ ) や -v ( 詳細な状況表示 ) といったオプションも併用すると、問題が切り分けし易いでしょう。

以上、ご参考まで。
tomo
会議室デビュー日: 2005/10/06
投稿数: 4
投稿日時: 2005-10-11 17:59
返答ありがとうございます。
返信遅れ申し訳ありませんでした。
まず使用環境はrpmベースです。
statusファイルを削除するとリードエラーは消えましたが-vオプションをつけて
/usr/sbin/logrotate -v /etc/syslog.confを実行すると以下のエラーが発生しました。
reading config file /etc/syslog.conf
error: /etc/syslog.conf:10 unknown option 'auth' -- ignoring line
error: /etc/syslog.conf:10 unexpected text
error: /etc/syslog.conf:11 lines must begin with a keyword or a filename (possibly in double quotes)
error: /etc/syslog.conf:14 unknown option 'daemon' -- ignoring line
error: /etc/syslog.conf:14 unexpected text
error: /etc/syslog.conf:15 unknown option 'kern' -- ignoring line
error: /etc/syslog.conf:15 unexpected text
error: /etc/syslog.conf:16 unknown option 'lpr' -- ignoring line
error: /etc/syslog.conf:16 unexpected text
error: /etc/syslog.conf:17 bad mail address .* -/var/log/mail.log
ちなみに/etc/syslog.confのデフォルト内容は以下のとおりです。
先頭部分のコメントは省略してます。
auth,authpriv.* /var/log/auth.log
*.*;auth,authpriv.none -/var/log/syslog
#cron.* /var/log/cron.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
lpr.* -/var/log/lpr.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
uucp.* /var/log/uucp.log

#
# Logging for the mail system. Split it up so that
# it is easy to write scripts to parse these files.
#
mail.info -/var/log/mail.info
mail.warn -/var/log/mail.warn
mail.err /var/log/mail.err

# Logging for INN news system
#
#news.crit /var/log/news/news.crit
#news.err /var/log/news/news.err
#news.notice -/var/log/news/news.notice

#
# Some `catch-all' logfiles.
#
*.=debug;\
auth,authpriv.none;\
news.none;mail.none -/var/log/debug
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages

#
# Emergencies are sent to everybody logged in.
#
*.emerg *
ここでいろんなログファイルを作成する設定を行っているのですが
未定義オプション関連エラーが発生するのはなぜでしょうか?
単体で動かしているため他のログファイル設定はキャンセルする必要があるので
しょうか?
さらに手動コマンドではエラーが発生するためstatusファイルを削除の状態で
再起動したところ/var/lib/logrotate/にstatusファイルは作成されてません
でした。
以上なかなか思うようにいきません。
ご返答よろしくお願いします。
anights
ぬし
会議室デビュー日: 2003/05/22
投稿数: 277
お住まい・勤務地: 東京
投稿日時: 2005-10-11 23:29
引用:

tomoさんの書き込み (2005-10-11 17:59) より:
返答ありがとうございます。
返信遅れ申し訳ありませんでした。
まず使用環境はrpmベースです。
statusファイルを削除するとリードエラーは消えましたが-vオプションをつけて
/usr/sbin/logrotate -v /etc/syslog.confを実行すると以下のエラーが発生しました。
reading config file /etc/syslog.conf



設定ファイルは、/etc/logrotate.conf では?
/etc/syslog.confは、syslogdなんかの設定ファイルですよ。
1

スキルアップ/キャリアアップ(JOB@IT)