- PR -

ログローテートについて

1
投稿者投稿内容
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-02-18 00:46
コマンドの結果内容を定期的に同じファイルに出力し
(/var/log/test.log)それをローテートさせようと思い
/etc/logrotate.confへ下記の様に記載しました。
またOSのバージョンはFedoraCore3です

■/etc/logrotate.conf記載内容
#/var/log/test.log
/var/log/test.log {
daily
create 0600 root root
rotate 1
}

cronを再起動させ1日待ったのですが、ローテートされませんでした。
できなかったので/etc/cron.daily/logrotateに記載されている
/usr/sbin/logrotate /etc/logrotate.confを実行してみた所
やはりだめでした。

設定がおかしいのでしょうかそれとも、何か作業が不足しいるのでしょうか
ご存知の方がいらっしゃいましたらご教授の程を宜しくお願い致します。
Uta
常連さん
会議室デビュー日: 2004/05/17
投稿数: 37
投稿日時: 2005-02-18 09:11
logrotateはローテーションの履歴を[/var/lib/logrotate.status]等で管理しています。
(システムによってパスが異なる可能性があるのでfind等で探してください)

おそらく、そこに下記のように書かれていると思います。
コード:
"/var/log/test.log" 2005-2-18


これを、昨日以前の日付に変更した上で再度コマンドを発行すれば
ローテーションされると思います。

(昨日テストをされているようですので、本日 再試行すれば特に変更しなくても成功すると思いますが)
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-02-19 13:49
Utaさんご回答ありがとうございます。

またご連絡が遅くなり大変申し訳ございませんでした。
おっしゃる通りに/var/lib/logrotate.statusの日付を変し
/etc/cron.daily/logrotateの中に記載されてあるコマンド
を実行し解決しました。

ありがとうございました。

ただ、毎回これを行わないといけないのでしょうか?
反映等がされなかった理由は、/etc/logrotate.confの設定等を
行った後にシステムの再起動を行わなかったからでしょうか?
それともcronがうまく動作しなかったのでしょうか。
でも/var/log/cronや/var/log/messagesにはエラーらしき内容
は出力されていなかったし・・・

/var/lib/logrotate.statusにはどのようなタイミングで設定内
容を記載するのでしょうか?

今回はどうもありがとうございました。
Uta
常連さん
会議室デビュー日: 2004/05/17
投稿数: 37
投稿日時: 2005-02-19 18:45
引用:
ただ、毎回これを行わないといけないのでしょうか?


いえ、大丈夫ですよ。
[logrotate.status]で管理しているのはローテーションの履歴です。
先の例ですと、[/var/log/test.log]を最後にローテーションしたのは
2005年02月18日だぞということを記録しているわけです。

そして、[logrotate.conf]では毎日ローテーションすると設定しているので、
2005年02月19日以降にlogrotateが実行されれば、ローテーションされるわけです。



ハマリやすいのは、初めてローテーション対象に入れられたファイルは
当然[logrotate.status]に記載が無いために、初回実行時に追記されます。
そして、その際にはローテーションは実行されないのです。
だから、その時に即時にローテーションされることを確認したい場合は
[logrotate.status]の該当部分の日付を巻き戻してあげる必要があるのです。
サキ
常連さん
会議室デビュー日: 2005/01/15
投稿数: 32
投稿日時: 2005-02-19 23:46
Uta様
度々ご返信誠にありがとうございます。ローテートの仕組みが良くわかりました。
ありがとうございました。
1

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