logrotate の使い方

ログを回す(古いログを残しつつ切り替える)

書き方

sudo logrotate -d 設定ファイル(試すだけ)
sudo logrotate -f 設定ファイル(今すぐ回す)
sudo logrotate -v 設定ファイル

設定は /etc/logrotate.conf と /etc/logrotate.d/。主な指示:daily・weekly、rotate 数、compress、missingok、notifempty、create モード 持ち主 グループ、copytruncate、size。

よく使うオプション

オプション意味
-d試すだけで、何も変えない
-f条件に関係なく、今すぐ回す
-v何をしたかを詳しく出す

例

$ sudo logrotate -d /etc/logrotate.d/nginx

nginx のログの回し方の設定を、実際には回さずに試します。設定を書いたら最初にこれで確かめます。

$ sudo logrotate -f /etc/logrotate.d/nginx

日や大きさの条件を待たずに、今すぐ回します。

$ cat /etc/logrotate.d/nginx/var/log/nginx/*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
}

設定を見ます。daily・rotate・compress などの指示が書かれています。

よくある間違い・注意

  • 回したあと、プログラムが古いファイルに書き続けることがあります。postrotate でプログラムに開き直させるか、copytruncate を使います。
  • logrotate はふつう 1 日に 1 回、タイマー(logrotate.timer)から動きます。設定を書いた直後には回りません。

実際に打って練習する

Linux レベル1 コースの Lv91「記録を巻き直す logrotate」で覚えます(第5章 見張りの塔(環境・ジョブ・ログ・時刻))。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。

Lv1〜16 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。

Linux コマンド一覧(LinuC レベル1 の範囲)へ戻る