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
                
                