ログファイルの切り替えUNIX処方箋

現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、ログファイルの扱いにかんする注意点とlogadmコマンドによるログローテーション機能について解説します。

» 2009年02月03日 07時00分 公開
[ITmedia]

Solaris 9でSYSLOGサーバを立て、さまざまな機器のログを保存しています。放置しておくとログデータが巨大になるので、crontabでログファイルを切り替えるスクリプト(mvとtouchを使用)を作成し、利用しています。しかし、切り替えたはずなのにmv先のファイルにログが記録され続けます。なぜこのようになるのでしょうか?


おそらくSYSLOGを再起動していないためだと思われます。SYSLOGに限らず、プロセス動作中(ファイル利用中)にログファイル名を変更してもアプリケーションは以前のファイルをそのまま使用し続けます。そのため、ログファイル変更時には必ずアプリケーションの再起動を実施する必要があります。作成されたスクリプトの末尾に「kill -HUP <SYSLOGのPID>」を加えるようにしてください。

 なお、Solaris 9をお使いとのことですが、システム(root権限)ログの切り替えについては、新たにlogadmコマンドが追加されています。従来のようなスクリプトを作成する必要はなく、logadmコマンドによるログローテーション機能を利用できます。logadmでは、

  • システム上でローテーションするログファイル名
  • ローテーション間隔とその条件設定
  • 保存するバックアップログファイル数などの情報

といった情報を、コマンドの引数として、または設定ファイル/etc/logadm.confに記述できます。これによって、例えば「毎日ログファイルをチェックし、ファイルサイズが1Mバイトを超えた場合はファイルのローテーションを行い、10世代分を保存」などと設定します。


# logadm -C10 -w /var/adm/testlogfile -s 1m

UNIX関連の悩みなら、「UNIX処方箋」にどうぞ


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ