【Linux 入門】logrotate でログローテーション

logrotatelogrotate とは、一定のサイズに達したり、一定期間が経過したファイルを自動で削除したり世代管理するプログラムです
1週間ごとにバックアップ、2世代までバックアップを残す場合
関連記事:Linux の基本機能
スポンサーリンク

logrotate の設定

logrotate の設定ファイルは /etc/logrotate.conf (個別設定は /etc/logrotate.d 配下) です。

sudo vim /etc/logrotate.d/test.conf
/tmp/rotate/test.log {
    daily
    maxsize 1M
    create 0660 root root
    rotate 2
}
項目説明
dailyローテーションの間隔 weekly や hourly も設定可能
maxsizeこのファイルサイズになるとローテーションする
createローテーションで作成するファイルパーミッション
rotateバックアップを残す世代数

なお、logrotate は cron により自動で実行されます。

スポンサーリンク

logrotate のテスト

cron の実行を待てない。今すぐテストしたい!ということもよくあるかと思います。

ここでは、logrotate を強制的に実行する方法を説明します。

準備

mkdir /tmp/rotate
touch /tmp/rotate/test.log
sudo chmod 755 /tmp/rotate

オプション -f 手動実行

sudo logrotate -f /etc/logrotate.d/test.conf
ls /tmp/rotate/
test.log  test.log.1

現行世代がバックアップ (test.log.1) となり、新規に空のファイル (test.log) が作成されました。

sudo logrotate -f /etc/logrotate.d/test.conf
sudo logrotate -f /etc/logrotate.d/test.conf
ls /tmp/test*
ls /tmp/rotate/

今まで合計三回ローテーションをしましたが、「rotate 2」と設定しているため、3世代目は削除されていることが確認できます。

スポンサーリンク

関連情報

関連記事:Linux の基本機能