Solaris 8以前と9以降のログローテーション設定の違い:UNIX処方箋
現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、Solaris 9以降で変更されたログローテーションの動作と設定方法について解説します。
これまでSolaris 8を管理してきましたが、Solaris 10に移行することになりました。/var/adm/messagesのローテーションの方法がSolaris 9以降変わったと聞いたのですが、具体的にどのように変更されたのでしょうか? また、ローテーション条件はどのように変更するのでしょうか?
Solaris 8までは、/usr/lib/newsyslogというシェルスクリプトをcronで定期的に実行することで、/var/adm/messagesのローテーションを行っていました。Solaris 9以降は、newsyslogの代わりに/usr/sbin/logadmコマンドを使用するようになり、ローテーションの動作と設定方法が変更されています。それぞれ比較してみましょう(リスト1)。
Solaris 8以前
毎週日曜日の3時10分に次の動作を行う
- messages.2が存在すれば、messages.3へリネーム
- messages.1が存在すれば、messages.2へリネーム
- messages.0が存在すれば、messages.1へリネーム
- messagesが存在すれば、messages.0へリネーム
- 空ファイルmessagesを作成し、属性を644に変更
Solaris 9以降
毎日3時10分に、messagesが空ではなく、かつ、1週間以上経過している場合、次の動作を行う
- messages.2が存在したら、messages.3へリネーム
- messages.1が存在したら、messages.2へリネーム
- messages.0が存在したら、messages.1へリネーム
- messagesが存在したら、messages.0へリネーム
- 空ファイルmessagesを作成。messagesのオーナー、グループ、属性はリネーム前のmessagesに従う
Solaris 8以前とSolaris 9以降では、ローテーションの動作が変わっているのが分かります。Solaris 8以前では、日曜日に必ずローテーションが発生するのに対し、Solaris 9以降では、ログが空であればローテーションされませんし、必ずしも日曜日に実行されるわけではありません。
設定方法
Solaris 8以前のnewsyslogは、ログローテーション用シェルスクリプトとなっています。ローテーション条件の変更が必要な場合は、newsyslogを直接編集し、実行されるタイミングはcronで設定します。
Solaris 9以降
Solaris 9以降では、logadmコマンドの設定およびローテーションの対象となるファイルは、/etc/logadm.confに記述されています。よって、ローテーションのルールを変更する際はlogadm.confを編集し、ローテーションのタイミングはcronで設定します。
主要なオプションは表1のとおりです。これ以外のものについては「logadm -h」もしくは「man logadm」を参照してください。
オプション | 機能 |
---|---|
-C | ログを残すカウント回数。この数だけリネームしてログを残す。特に指定のない場合、標準で10になる |
-P | ログをローテーションした最終日時。最後にログをローテーションした日時になる。もし、logadmを実行してもログがローテーションされなければ日時は変化しない |
-a | ログをローテーションした後に実行するコマンド |
-b | ログをローテーションする前に実行するコマンド |
-s | ファイルサイズ。ログファイルの容量が指定サイズより大きい場合、ローテーションを行う。単位はb(バイト)、k(キロバイト)、m(Mバイト)、g(ギガバイト)で指定する。デフォルトは1b |
-p | 期間。指定期間を経過した場合、ログファイルのローテーションを行う。単位はd(日)、h(時間)、w(週)、m(月)、y(年)で、デフォルトでは1wとなっている。また、特殊オプションとしてnowとneverが指定できる。nowは、logadmが実行された時点でログをローテーションし、neverは一切ローテーションを行わない。このオプションはほかの条件オプションより優先される。例えば、「-s」オプションのデフォルト設定1bを満たさない空ファイルでも、nowが指定されている場合、ローテーションされる |
-t | テンプレート。ローテーションするファイルのリネーム名を指定する。標準では$file.$n(元のファイル名.数字)になる |
/etc/logadm.confの記述例
messagesの場合、デフォルトではリスト2のように/etc/logadm.confに記述されています。また、「-s」、「-p」、「-t」といったオプションが省略されているため、次のようにそれぞれのデフォルト設定が適用されます。
- -s = 1b(ファイルサイズが1バイト以上)
- -p = 1w(ファイルの経過時間が1週間以上)
- -t = $file.$n(「元のファイル名.数字」でリネーム)
以上のように、/etc/logadm.confでオプションを指定することで、messagesやそのほかのログファイルのローテーション管理を行えます。
関連記事
- HTTPSサーバを構築する
- SolarisからIPv6ルーターのようにRAを配信する
- Solstice Backup 7.1によるディスクバックアップ
- ディスクデバイス名の調査方法
- 夜間のシステム自動停止と自動起動
- NISマスターサーバ情報へのアクセス制限
- 重要データを任意のHDDへ定期的にバックアップ
- ログファイルのローテーション
- SUIDとは
- シェルスクリプトによる特定ファイルのバックアップ
- 9個以上のディスクスライス作成
- bashが起動時に実行するファイル
- acctcomコマンドによる終了ステータスの確認
- 電源制御キーの役割と無効化
- 「load average」によるCPU負荷の確認
- FTP利用でのファイル/ディレクトリの属性変更
- UFS loggingによるエラーと復旧方法
- ALOMにおけるSC用ユーザーの確認とパスワード変更
- PostgreSQLのテーブルデータをファイルへコピーする方法
- sotrussやapptraceによる実行コマンドのトレース
- TCP遅延肯定応答タイマーのタイムアウト値の変更
- 複数のマシンで効率的にシャットダウンする方法
- WWW::MechanizeモジュールによるWebアクセスの自動化
- IPv6アドレスの自動生成による不具合解消法
- キャッシュファイルを利用したNFSマウント
関連リンク
Copyright © ITmedia, Inc. All Rights Reserved.