

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
postrotateとは
postrotate は Linux の logrotate という仕組みの中で使われるキーワードの一つです。主にログファイルを一定期間ごとに回転させた後に実行する処理を指します。
ログファイルは時とともに大きくなりすぎてしまうので定期的に「新しいファイル」に切り替えます。postrotate はその切り替えの直後に実行されるコマンドを集めたブロックです。
仕組みと場所
設定ファイルは通常 /etc/logrotate.conf や各アプリの設定ファイル /etc/logrotate.d/ に書きます。各セクションには対象ファイルと回転の条件を記述し postrotate ブロックを付けることで、回転後に任意のコマンドを走らせることができます。
使い方の基本
例として次のような設定があるとします
/var/log/myapp.log { daily rotate 7 compress missingok notifempty postrotate /usr/bin/killall -HUP myapp 2>/dev/null || true endscript}
このように postrotate ブロック内には回転後に実行したいコマンドを自由に入れることができます。実行するコマンドは必ず endscript でブロックを閉じます。
注意点とコツ
postrotate を使うときのポイントは以下の通りです。回転後の処理は必ず成功を前提に設計しよう。ログファイルが存在しない場合や対象サービスが停止している場合にはエラーになることがあります。監視とリダイレクトを設定してエラーメッセージを確実に把握できる状態にしておくと安心です。
実務で役立つコツとしては 対象サービスの再起動・再読込コマンドを postrotate に入れることです。例えばウェブサーバーやデーモンは logrotate の回転直後に再起動を行うと新しいログファイルへの書き込みを正しく開始します。具体的には次のような形になります。
/var/log/nginx/access.log /var/log/nginx/error.log { weekly rotate 4 compress missingok notifempty postrotate /usr/sbin/nginx -s reopen 2>/dev/null || true endscript}
実務での注意点
設定を変えたら必ずテストを行いましょう。実運用前に以下のコマンドでテストします。logrotate -d /etc/logrotate.conf でデバッグモードの動作を確認します。実際の処理を走らせたい場合は logrotate -f /etc/logrotate.conf を使います。
要点のまとめ
| 説明 | |
|---|---|
| postrotate の役割 | 回転後に実行されるコマンドを集めたブロック |
| 設定場所 | /etc/logrotate.conf または /etc/logrotate.d/ の設定 |
| 重要な注意点 | 実行権限やエラー処理、再起動のコマンドの適切さを確認 |
このように postrotate はログを整理するだけでなく回転後の後処理を自動化する重要な機能です。初心者でも段階的に設定を試し、理解を深めていくことが大切です。
postrotateの同意語
- postrotate
- ログのローテーション後に実行される処理を指す、logrotate などの設定で使われるディレクティブ。
- ローテーション後の処理
- ローテーションが完了した後に実行される処理のことを指す、postrotate の意味を自然に言い換えた表現。
- 回転後の処理
- ファイルの回転(ローテーション)後に行う処理のことを示す言い換え表現。
- ローテーション後
- ローテーションが終わった後の時点やタイミングを示す表現。
- 後処理
- 後の段階で行う処理の総称。文脈により postrotate の意味を示すこともある。
- アフター・ローテーション
- postrotate の直訳的・カタカナ表記。文書で見かけることがある表現。
- post-rotation
- 英語表現の同義語。技術文書で使われることが多い表現。
postrotateの対義語・反対語
- prerotate
- ローテーションの前に実行される処理。logrotate の prerotate ディレクティブに対応します。
- pre-rotate
- prerotate の別表記。意味は同じですが、正確には prerotate を使うのがおすすめです。
- before-rotation
- ローテーションの開始前に行われる処理を指す一般的な表現。postrotate の反対の概念です。
- rotation-before
- 回転が始まる前に実行される処理を表す英語風表現。技術文書で使われることがあります。
- preRotation
- 英語のキャメルケース表記。意味は prerotate/前に実行される処理と同等です。
postrotateの共起語
- prerotate
- ローテーションの前に実行されるスクリプトブロック。ローテーション開始前に実行したい処理を記述します。
- endscript
- スクリプトブロックの終端を示すディレクティブ。prerotate/postrotate ブロックを閉じます。
- postrotate
- ローテーション後に実行されるスクリプトブロック。ログファイルの再オープンなどを行います。
- sharedscripts
- このオプションを使うと、複数のログファイルを対象にしてもスクリプトを1回だけ実行します。
- firstaction
- ローテーション開始前に実行されるコマンドブロック。
- lastaction
- ローテーション終了後に実行されるコマンドブロック。
- rotate
- 保持する古いログの数を設定します。例: rotate 4 で最新4つを保管。
- daily
- 日次でログをローテーションします。
- weekly
- 週次でログをローテーションします。
- monthly
- 月次でログをローテーションします。
- yearly
- 年次でログをローテーションします(稀に使われます)。
- size
- ログファイルがこのサイズを超えた場合にローテーションします。
- minsize
- ファイルがこの閾値以上のサイズになるとローテーションします。
- maxsize
- ファイルがこの閾値を超えた場合にローテーションします。
- compress
- ローテーション後のファイルを圧縮します。
- delaycompress
- 直後のローテーション時には圧縮を遅らせます。
- nocompress
- 圧縮を行いません。
- notifempty
- 空のログファイルはローテーション対象から除外します。
- missingok
- 対象ファイルがなくてもエラーにしません。
- copytruncate
- コピーして元のファイルを切り詰める方式でローテーションします(再オープンが不要な場合に有効)。
- create
- 新しいログファイルを作成します(例: create 0644 root root)。
- dateext
- ファイル名に日付を拡張子として付けます。
- dateformat
- 日付拡張子の形式を指定します。
- olddir
- ローテーション済みファイルを格納するディレクトリを指定します。
- include
- 他の設定ファイルを読み込み、組み込むディレクティブです。
- systemctl
- systemd のコマンド。ユニットの操作に使われます(例: systemctl reload)。
- reload
- サービスを再読み込みします。ログファイルを再オープンさせる目的で使われます。
- rsyslog.service
- rsyslog の systemd ユニット名。rsyslog のログを扱う場合に関連します。
- nginx
- nginx のログをローテーション対象にする設定の例。
postrotateの関連用語
- logrotate
- Linux のログファイルを回転させ、古いログを整理・保持期間を管理するツール。/etc/logrotate.conf で設定します。
- prerotate
- 回転前に実行されるコマンドブロック。endscript で閉じます。
- postrotate
- 回転後に実行されるコマンドブロック。endscript で閉じます。
- endscript
- prerotate / postrotate ブロックの終端を示すキーワード。
- rotate
- 保持する回転の世代数。例: rotate 4 なら4世代を保持します。
- daily
- 毎日回転する設定。日次のスケジュールを指定します。
- weekly
- 毎週回転する設定。週次のスケジュールを指定します。
- monthly
- 毎月回転する設定。月次のスケジュールを指定します。
- size
- ログファイルのサイズがこの値を超えた場合に回転します。
- minsize
- 回転を開始する最小サイズを指定します。
- maxsize
- 回転を停止する最大サイズを指定します。
- compress
- 回転後のファイルを gzip などで圧縮します。
- delaycompress
- 直近の回転は圧縮を遅らせ、次回以降に圧縮します。
- nocompress
- 回転後のファイルを圧縮しません。
- notifempty
- ファイルが空でない場合のみ回転します(空ファイルは対象外)。
- missingok
- 対象ファイルが存在しなくてもエラーを出しません。
- create
- 新しいログファイルを作成して回転後に使用します。モード・オーナー・グループを指定できます。
- nocreate
- 新しいログファイルを作成しません。
- copytruncate
- 元のファイルをコピーしてから元ファイルを切り詰めます(再起動せず回転可能)。
- olddir
- 回転後のファイルを別のディレクトリに格納します。
- dateext
- 日付をファイル名に追加して回転します。
- dateformat
- dateext で使われる日付の形式を指定します。
- extension
- 回転ファイル名に付く拡張子を指定します。例: extension .gz。
- 回転したログをメールで送信します(宛先を設定します)。
- mailfirst
- 回転の最初のファイルだけメールで送信します。
- maillast
- 回転の最後のファイルだけメールで送信します。
- mailcmd
- メール送信に使うコマンドを指定します(例: /usr/sbin/sendmail)。
- include
- 他の設定ファイルを読み込みます(複数ファイルを統合管理します)。
- su
- 回転時に指定したユーザーとグループで実行します。
- sharedscripts
- prerotate/postrotate ブロックを複数のファイルで共有して、実行タイミングを統一します。
- compresscmd
- 圧縮に使用するコマンドを指定します(デフォルトは gzip)。
postrotateのおすすめ参考サイト
- ログローテーションとは - Linux技術者認定 LinuC | LPI-Japan
- logrotate の sharedscripts とは? - Zenn
- ログローテーションとは - Linux技術者認定 LinuC | LPI-Japan



















