ユーザ用ツール

サイト用ツール


os:freebsd:tips:newsyslog

ログローテート / 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<hour>で毎日、$M<day>D<hour>で毎月指定した日時に実行
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により自動で読み込まれるため、手動でのサービス再起動は不要

os/freebsd/tips/newsyslog.txt · 最終更新: by hayashi