Linux シスログなどをローテーションする方法

  • ガイド ( How to )
  • 閲覧数:768
  • ありがとう数:0

はじめに

各種ログファイルは放置しておくと時間とともに肥大化します。この問題を解決するのがログローテーションです。 ログローテーションは、例えばlogというログファイルの名前をlog1 log2 log3…というように定期的に回してバックアップします。
ローテーション数を4にしたのであれば定期的にlog4のログはlog3に上書きされ、log3のログはlog2に上書きされ、log2のログはlog1 に上書きされ log1のログはlogに上書きされます。そして新たな空のログファイルlogが生成されます。一週間間隔でローテーションするのであればログファイルは1週間ログデータが記録されるごとに空になり、4週間分のログファイルがバックアップされていることになります。

STEP1

logrotateの設定ファイル/etc/logrotate.confのデフォルトは以下のようになっている。

logrotate.d

設定値説明
compressローテーションされたログをgzipで圧縮する。
create [パーミッション] [ユーザ名] [グループ名]ローテーション後に新たな空のログファイルを作成します。
ファイルのパーミッション、ユーザ名、グループ名を指定できます。
daily毎日ログローテーションする。
ifemptyログファイルが空でもローテーションする。
missingokログファイルが存在しなくてもエラーを出さない。
monthly毎月ログローテーションする。
nocompressローテーションされたログを圧縮しない。
nocreate新たな空のログファイルを作成しない。
nomissingokログファイルが存在しない場合エラーを出す。
noolddirローテーション対象のログと同じディレクトリにローテーションされたログを格納する。
notifemptyログファイルが空ならローテーションしない。
olddir ディレクトリ名指定したディレクトリ内にローテーションされたログを格納する。
postrotate - endscriptpostrotateとendscriptの間に記述されたコマンドをログローテーション後に実行する。
prerotate - endscriptpostrotateとendscriptの間に記述されたコマンドをログローテーション前に実行する。
rotate 回数指定した回数だけローテーションする。
size ファイルサイズログファイルが指定したファイルサイズ以上であればローテーションする。
sharedscripts複数指定したログファイルに対してpostrotateまたはprerotateで記述されたコマンドを実行する。
weekly毎週ログローテーションする。

関連するタグ

特集


感謝指数をマイページで確認!

ピックアップ

ページ先頭へ