- - PR -
linuxのログローテートについて
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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は空ファイルで何も書かれてなくエラーとなるのですが ここに日付(実行日以前の日付)を強引に書き込み必要があるのでしょうか? または何か設定が間違っているでしょうか? 返答よろしくお願いします。 | ||||||||
|
投稿日時: 2005-10-06 18:19
こんにちは。
ステータスファイルは、ローテート状況を把握し、かつ後日利用できるように、読み・書きができる必要があります。 もし、ファイルが存在しない場合は、最初の logrotate 実行時に作成されます。 空ファイルなのであれば、念のため削除してみるのも良いと思います。
手元の FedoraCore1 環境では、-s オプション無しの場合の標準のステータスファイルは、“/var/lib/logrotate.status”だったのですが、tomo さんの環境では如何でしょうか? もし、rpm ベースのシステムなら rpm -qc で、そうでなくとも、strings /usr/sbin/logrotate の出力から分かると思います。 ちなみに、logrotate を実行する時には、-d ( デバッグ ) や -v ( 詳細な状況表示 ) といったオプションも併用すると、問題が切り分けし易いでしょう。 以上、ご参考まで。 | ||||||||
|
投稿日時: 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ファイルは作成されてません でした。 以上なかなか思うようにいきません。 ご返答よろしくお願いします。 | ||||||||
|
投稿日時: 2005-10-11 23:29
設定ファイルは、/etc/logrotate.conf では? /etc/syslog.confは、syslogdなんかの設定ファイルですよ。 |
1