Log Lotate
Apacheのログのロテーションに、logrotate というソフトが使われるそうですが、あえてそれを使わずnewsyslogを使う方法。
理由としてはインストールが面倒だから。
設定ファイル
/etc/newsyslog.conf が設定ファイルになる。文法は基本的に他のソフトの設定ファイルと同じで、「# 以降はコメント」「タブ/スペース区切り」「一行で一つの設定」となります。
文法
logfilename [owner:group] mode count size when flags [/pid_file] [sig_num]
- logfilename
- ロテーションするログファイルまでの絶対パス
- [owner:group]
- 保存しているファイルの所有者とグループ。数字もしくは、passwd/groupに書かれている名前
- mode
- ファイルパーミッション
- count
- 圧縮したファイルの保存数
- size
- この数値(キロバイト)まで来たら、ロテーションする。*の場合、サイズでのロテーションをしない。
- when
- 日付でロテーションをする場合、ここに値を入れる。*だと、日付でロテーションをしない
- 厳密に日付で指定する方法
- ISO8601 Format
- @[[[[[cc]yy]mm]dd][T[hh[mm[ss]]]]]
- 月や週や日で選択する方法
- [Dhh],[Ww[Dhh]], [Mdd[Dhh]]
- hh: 時間、0..23
- w : 曜日、0..6、0 = 日曜日
- dd: 日付、1..31、「L」もしくは「l」の時は、その月の末日になる。
- Example
- $D0 -- 毎日毎夜0時
- $D23 -- 毎日23時 -- @T23 と同じ
- $W0D23 -- 日曜23時
- $W5D16 -- 金曜16時
- $M1D0 -- 月初めの夜中0時
- $M5D6 -- 毎月5日の朝6時。 -- @05T06 と同意
- flags
- path_to_pid_file
- プロセスのPIDが書いているファイルまでのパス。ロテーションがすんだら、HUPシグナルをプロセスに飛ばす
- signal_number
- 指定された番号のシグナルを、HUPシグナルの代わりに飛ばす
FreeBSD のみな気配?