logrotateの実行時間、実行間隔をコントロール

Linuxサーバ

RHEL系(CentOS)
---

スポンサーリンク

logrotateを1日1回(23時59分)の実行ローテーションに変更

ログを管理するうえで重要なことは、いつのログを見たいか?とログの見やすさが
ポイントになると思います。

現行のlogrotateの設定ではローテーションが
AM1:00~AM5:00の間で毎日1回実行され(anacron設定により)
おそらく、AM4:02ごろに実行されていると思われます。

この場合だと、dailyログを閲覧するときに、日付が昨日と今日と2日にまたがり
非常に見にくいログとなり、いつのログかを確認しながらとなり大変不便である

■ポイント
今回は、logrotateの実行時間をカスタムして
毎日23:59に実行されるログローテーションに設定を変更する方法を
解説します


dailyで実行しているログローテーションを日付が変わるタイミングで
ローテーションするとファイル名と連動して管理がしやすくなります。

ファイル名とファイル日時でログ保管期間がわかる設定の流れ

1.logrotateを実行している「/etc/cron.daily」をanacron設定から削除
2.「/etc/cron.daily」をcrontabに実行したい時間(daily)で登録

この2つの設定を行うことでlogrotateを指定した時間帯で
1日1回実行することができます


※logrotateは「/etc/cron.daily」で実行されているため、「/etc/cron.daily」を
 操作して対応しています。

※現状CentOS7をインストールするとデフォルトでanacronにdaily、weekly、monthly
 で実行させたいcronが設定されます
 anacronはcron実行の時間帯に幅を持たせるために正確な時間での実行を行いません。
 そこで、正確な時間帯で実行させるために、/etc/crontabに設定して指定した時間帯
 で実行できるようにしました。

※昔はcrontabに設定されていましたが、今はanacronに設定するのがデフォルトになった
 ようです。

1.cron.dailyをanacron設定から削除

# vi /etc/anacron

ファイルを開いて「/etc/cron.daily」行を削除
※または、行の先頭に「#」を追加してコメントアウト化する

2.「etc/cron.daily」をcrontabに登録

# vi /etc/crontab

ファイルを開いて「/etc/cron.daily」行を以下の画像のように設定する

※今回は毎日23:59に実行するように設定していますが、時間と分を変更する
 ことで好きな時間に変更が可能

以上で、指定した時間帯になればlogrotateが実行されるようになります。

■注意事項
今回の設定は、logrotateの実行時間だけを変更したわけではございません。
すなわち、「/etc/cron.daily」フォルダ内に保存されている設定がすべて
今回設定した時間帯で実行されますのでご注意ください。


基本的には、「/etc/cron.daily」フォルダ内でlogrotate以外で設定しているものが
 別の時間帯で実行されたとしても影響はありません。
 logrotateの実行時間に合わせて「/etc/cron.daily」を設定することをお勧めします。

コメント

タイトルとURLをコピーしました