ログローテーション を自動化するときに、Linux でよく使われる代表的なツールが logrotate です。
/etc/logrotate.conf や /etc/logrotate.d/ の設定をもとに、ログを切り替えたり、圧縮したり、一定世代で削除したりできます。
Ubuntu の man page でも、logrotate はログの切り替え、圧縮、メール送信などを行う管理ツールとして説明されています。
実務では、Apache、Nginx、アプリ独自ログなど、テキストファイルとして出ているログを整理するときにかなりよく使います。
まず押さえたいポイント
- テキストログの切り替えと世代管理を自動化する
/etc/logrotate.confと/etc/logrotate.d/が基本の置き場所dailyweeklyrotatecompressなどの設定を組み合わせる
どんな場面で使うか
/var/log/nginx/*.logなどの Web サーバーログ管理- アプリケーション独自のファイルログ管理
- サイズや日付で区切ってログを残したいとき
初心者が混乱しやすい点
logrotate を設定しただけで、必ず思った頻度で動くとは限りません。
実際に何のタイミングで実行されるかは、ディストリビューションのタイマーやジョブ設定も確認した方が安全です。
実務で見るポイント
copytruncateは便利だが、万能ではないcompressとdelaycompressの挙動を分けて理解する-dでの確認や-fでの強制実行を覚えておくとトラブル時に助かる