Custom Search

JITAKU_SVR_Wiki

ほぼどのLinux/Unixにも標準でインストールされているlogrotate。
デフェオルトだとあまり使い物にならないので、自分でポリシーを設計して、それに合った設定をしてあげる。

そうしないと無駄にディスクを使用することになるし、お客様の環境であればどうしていいのか分からずgdgdになる。

logrotate

logrotate.conf

まずはlogrotate.confを覗いてみると、以下のようになっている。
※コメント部分は非表示。

# cat /etc/logrotate.conf | grep -v ^#

weekly                   # ← ローテートするタイミング
rotate 4                 # ← 世代管理
create                   # ← ローテート後空ファイルを作成する
dateext                  # ← ローテートしたファイルに日付を付ける
 
include /etc/logrotate.d # ← 個別に作成したローテートファイルをインクルードする

## インクルードさせていないで親の設定ファイルに書くパターン↓
/var/log/wtmp {           # ← 対象のファイル
    monthly               # ← ローテートするタイミング
    create 0664 root utmp # ← 新しく作成するファイルの権限
        minsize 1M        # ← 1M以内のファイルサイズはローテートしない
    rotate 1              # ← 世代は1つのみ
}

/var/log/btmp {
    missingok             # ← 実ファイルがなくてもエラーと言わない
    monthly               # ← ローテートするタイミング
    create 0600 root utmp # ← 新しく作成するファイルの権限
    rotate 1              # ← 世代は1つのみ
}

TIPS:
このファイルはログローテートするファイルの親ファイルとなり、更にincludeで子ファイルを作成することもできる。
親 = 共通設定といったところ。
子は親より優先される。


インクルードファイル

デフォルトで設定されているsyslogの設定ファイル

# cat /etc/logrotate.d/syslog
/var/log/cron
/var/log/maillog
/var/log/messages
/var/log/secure
/var/log/spooler
{
    sharedscripts
    postrotate
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
    endscript
}

上から順にローテートするファイルの名前が書かれている。
(書かれていないものは非対象)
cron,maillog,messages,secure,spoolerが以下のポリシーでローテートされる。

sharedscripts = スクリプトを実行する宣言
postrotate = postrotateはローテ-トした後にスクリプトを実行する。
(prerotate = prerotateは条件に合致した後にスクリプトを実行する。)

スクリプトの内容を見ると、条件に合致した場合(後)にsyslogデーモンをkill -HUP(reload)している。

logrotateをカスタマイズする

以下のように編集(まだ確認していないので、注意 20130514)

#毎日ローテートする => daily
daily

#世代を1年間残す => rotate 365
rotate 365

#圧縮をbzip2にする => compresscmd /usr/bin/bzip2
create

#ファイルの拡張子を.bz2にする => compressext .bz2
dateext
compress
compresscmd /usr/bin/bzip2
compressext .bz2

include /etc/logrotate.d


/var/log/wtmp {
    monthly
    compresscmd /usr/bin/bzip2
    compressext .bz2
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    compresscmd /usr/bin/bzip2
    compressext .bz2
    create 0600 root utmp
    rotate 1
}

参考

http://www.atmarkit.co.jp/flinux/rensai/root03/root03c.html
http://rina.jpn.ph/~rance/linux/apache/logrotate.html
http://za.toypark.in/html/2010/02-11.html


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-12-22 (火) 14:14:34 (702d)