ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Solaris のシステム管理 (上級編) Oracle Solaris 10 8/11 Information Library (日本語) |
3. サービスアクセス機能によるシリアルポートの管理 (手順)
Oracle Solaris プロセスアカウンティングと統計の改善点
18. ソフトウェアで発生するさまざまな問題の解決 (手順)
この節では、壊れたシステムアカウンティングファイルを修復し、runacct スクリプトを再起動する方法を説明します。
システムアカウンティングは絶対に障害が発生しないわけではありません。ファイルが壊れたり、失われることがあります。ファイルによっては、単に無視してよいものや、バックアップから復元できるものがあります。ただし、特定のファイルは、アカウンティングシステムの完全性を維持するために修復しなければなりません。
wtmpx ファイルは、システムアカウンティングを日常的に運用する上で発生する問題の大部分の原因になっています。日付を手動で変更したときに、システムがマルチユーザーモードになっていると、一連の日付変更レコードが /var/adm/wtmpx ファイルに書き込まれます。wtmpfix ユーティリティーは、日付変更が行われたときに、wtmp レコードのタイムスタンプを調整するように設計されています。ただし、日付変更とリブートの組み合わせによっては、wtmpfix の処理から漏れて、acctcon プログラムの処理が失敗することがあります。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
# /usr/lib/acct/fwtmp < wtmpx > wtmpx.ascii
# /usr/lib/acct/fwtmp -ic < wtmpx.ascii > wtmpx
詳細については、fwtmp(1M) のマニュアルページを参照してください。
/var/adm/acct/sum/tacct ファイルの完全性は、システム資源に対してユーザーに課金している場合は重要です。負の数値、重複ユーザー ID、または 65535 のユーザー ID とともに不正な tacct レコードが表示されることがあります。このような場合はまず、prtacct スクリプトを使用して、 /var/adm/acct/sum/tacctprev ファイルを表示してチェックします。内容が正しい場合は、最新の /var/adm/acct/sum/tacct MMDD ファイルに修正します。次に、/var/adm/acct/sum/tacct ファイルを作成し直します。次の手順は、簡単な修復手順の概要を説明しています。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
# /usr/lib/acct/acctmerg -v < tacctMMDD > xtacct
MMDD は、月と日をあらわす 2 桁の数値を組み合わせたものです。
# /usr/lib/acct/acctmerg -i < xtacct > tacctMMDD
# /usr/lib/acct/acctmerg < tacctprev tacctMMDD > tacct
runacct スクリプトは、さまざまな理由で失敗することがあります。
一般的な理由には、以下のようなものがあります。
システムクラッシュ
/var ディレクトリの容量不足
wtmpx ファイルの破損
active.MMDD ファイルが存在する場合は、まずエラーメッセージをチェックします。active ファイルおよび lock ファイルが存在する場合は、異常なメッセージがないかどうか fd2log ファイルを調べます。
runacct スクリプトは、引数を指定しないで実行すると、その呼び出しがその日の最初の呼び出しであると想定します。runacct スクリプトを再起動し、runacct スクリプトがアカウントを返す月と日を指定する場合は、引数 MMDD が必要になります。処理のエントリポイントは statefile ファイルの内容に基づきます。statefile ファイルを無効にするには、処理を開始したい状態をコマンド行に指定します。利用可能な状態の説明については、runacct(1M) のマニュアルページを参照してください。
注意 - runacct プログラムを手動で実行するときは、ユーザー adm として実行していることを確認してください。 |
$ cd /var/adm/acct/nite
$ rm lastdate lock*
lastdate ファイルには、 runacct プログラムが最後に実行された日付が含まれています。次の手順で runacct スクリプトを再起動することによって、このファイルが作成し直されます。
$ /usr/lib/acct/runacct MMDD [state] 2> /var/adm/acct/nite/fd2log &