「newsyslog」の設定

FreeBSD標準のログローテーションプログラムである「newsyslog」の設定方法。

「newsyslog」の設定

「newsyslog」はcronによって1時間に一回実行されている。
「newsyslog」の設定ファイルは /etc/newsyslog.conf であり、以下のフォーマットで1行に1つのログファイルの設定を記述する。

logfilename   [owner:group]   mode   count   size   when   [ZJB]   [/pid_file]   [sig_num]

各行の項目は以下の内容を記述する。

項目名 説明
logfilename ローテートするログファイル。
[owner:group] ローテーションしたファイルのオーナとグループ。
mode パーミッション。
count 保存するバックアップファイルの数。
これは0から数えてこの数まで保存するということ。
例えばmaillogを5にしたらmaillog、maillog.0~maillog.5、と最終的に7つのログファイルが出来る。
size ここで指定したサイズ以上になったらログファイルのローテートを行う。
単位はKB(キロバイト)。
サイズでローテートを行わない場合、*(アスタリスク)を指定。
when ログローテートを行う時刻を指定。
時刻を指定しない場合、*(アスタリスク)を指定。
時刻の指定は以下の方法がある。
・数字のみ
指定した数字の時間でローテートする。
例えば、24と指定したら24時間ごと。
・@(アットマーク)を指定。
ISO8601の時刻指定。
ISO8601のフォーマートは例えば、2007年12月29日15時10分25秒だと以下のようになる。
20071229T151025
日付と時刻の間にTが入る。
この項目で指定する場合、一部のみの記述も出来るので、例えば毎月1日の0時にローテートする場合、@1T00というように指定する。
・$(ドルマーク)を指定。
FreeBSDの時刻表記で、フォーマットは、MddDhh、Mdd、WwDhh、Ww、Dhhのいずれか。
M:毎月
W:毎週
D:毎日
dd:日(1~31)
w:曜日(0:日曜日~6:土曜日)
hh:時間(0~23)
Lを指定した場合は月末になる。
$W0H2 : 毎週日曜の午前2時
$MLH22 : 月末の22時。
[ZJB] ローテートしたログの圧縮方法。
Z:gzで圧縮
J:bzで圧縮
B:バイナリでコピー(非圧縮)
[/pid_file] ローテートする時にシグナルを与える必要がある時にPIDファイルを指定する。
[sig_num] デーモンにシグナルに送るシグナル番号を指定。

なお、sizeとwhenが両方指定した場合、どちらかを満たした場合(or)に実行する。
また、設定変更後はnewsyslogコマンドで設定を反映させる。

FreeBSD# newsyslog <= 設定の反映
▲ページのトップへ