====== ログローテート / newsyslog ====== ===== 設定ファイル ===== /etc/newsyslog.conf.d/に、nginx.confなどの任意の名前でファイルを作成 ===== 書式 ===== 以下の書式でログローテーションのルールを記述 logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] ^パラメータ^説明^ |logfilename|ローテーション対象のログファイルパス| | ::: |*などのワイルドカードも使用可能| |[owner:group]|ローテーション後のファイルの所有者とグループを指定| |mode|ファイルのパーミッションを8進数で指定| |count|保存するバックアップログの世代数| |size|ファイルサイズがこの値(キロバイト単位)に達した際にローテーションを実行| | ::: |*を指定するとサイズでの判定は無効| |when|ローテーションを実行するタイミングを指定| | ::: |$Dで毎日、$MDで毎月指定した日時に実行| |flags|動作を制御するオプションです| | ::: |- B: ログファイルにローテーションメッセージを残しません| | ::: |- G: logfilenameにワイルドカードが含まれていることを示します| | ::: |- J: bzip2で圧縮します| | ::: |- X: xzで圧縮します| | ::: |- Z: gzipで圧縮します| |[/pid_file]|シグナルを送信するプロセスのPIDが記録されたファイルのパス| | ::: |nginxの場合は/var/run/nginx.pidを指定| |[sig_num]|ログファイルを再オープンさせるために送信するシグナル番号| | ::: |nginxはUSR1シグナルでログファイルを再オープンするため、シグナル番号として30(SIGUSR1)を指定| ==== Nginxの例 ==== # logfilename [owner:group] mode count size when flags [/pid_file] [sig_num] /var/log/nginx/*.log root:wheel 644 7 * $D05 JG /var/run/nginx.pid 30 ===== 設定の確認 ===== 以下のコマンドで、構文が正しいか、また次にローテーションが実行される予定日時を確認できる # newsyslog -nv このコマンドは実際にはローテーションを実行せず、シミュレーション結果のみを表示 設定ファイルはcronにより自動で読み込まれるため、手動での**サービス再起動は不要**