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