この章のリファレンス情報の内容は、次のとおりです。
日次アカウンティングによって、「接続アカウンティング」、「プロセスアカウンティング」、「ディスクアカウンティング」、「料金計算」の 4 種類のアカウンティングを簡単に実行できます。
接続アカウンティングでは、次のデータを調べることができます。
特定のユーザーがログインしていた時間
tty 回線の利用状況
システムのリブート回数
アカウンティングソフトウェアが有効または無効に設定された頻度
これらの情報を提供するために、システムは期間調整、リブート回数、アカウンティングソフトウェアが有効または無効に設定された回数、実行レベルの変更回数、ユーザープロセス (login プロセスと init プロセス) の作成、プロセスの消滅などの情報のレコードを格納します。これらのレコード (date、init、login、 ttymon、acctwtmp などのシステムプログラムの出力によって生成されます) は /var/adm/wtmpx ファイルに格納されます。wtmpx ファイルのエントリには、ユーザーのログイン名、装置名、プロセス ID、エントリタイプ、エントリがいつ作られたかを示すタイムスタンプなどの情報を含めることができます。
プロセスアカウンティングでは、システムで実行される各プロセスに関する次のようなデータを追跡できます。
プロセスを使用するユーザーおよびグループのそれぞれのユーザー ID とグループ ID
プロセスの開始時刻と経過時間
プロセスの CPU 時間 (ユーザー時間とシステム時間)
使用されるメモリーの量
実行されるコマンド
プロセスを制御する tty
プロセスが終了するたびに、exit プログラムは上記のデータを収集し、/var/adm/pacct ファイルに書き込みます。
ディスクアカウンティングでは、各ユーザーがディスク上にもっているファイルについて次のデータを収集し、それらの書式を指定できます。
ユーザーの名前と ID
ユーザーのファイルが使用しているブロック数
これらのデータはシェルスクリプト /usr/lib/acct/dodisk によって収集されますが、収集周期は /var/spool/cron/crontabs/root ファイルに追加する cron コマンドによって決定されます。dodisk は、acctdusg および diskusg コマンドを起動して、システム内の各ファイルについての情報を収集させます。
dodisk の設定の詳細は、「システムアカウンティングを設定する方法」を参照してください。
acctdusg(1M) コマンドは、すべてのディスクアカウンティング情報を収集します。起動されるたびに、このコマンドは最高 3000 ユーザー分の情報を処理できます。
dodisk(1M) を実行して収集された情報は、/var/adm/acct/nite/disktacct ファイルに格納されます。これらの情報は、次に dodisk を実行したときに上書きされます。したがって、dodisk は同じ日に 2 回以上実行しないでください。
ランダムなアクセスにより書き込まれ、その結果ディスク上で連続していないファイルに対して diskusg コマンドは、より多く課金します。これは、diskusg がファイルのサイズを判定するときにファイルの間接ブロックを読み取らないためです。このコマンドは、i ノードの di_size の値を調べてファイルのサイズを判定します。
chargefee ユーティリティは、ユーザーに提供した特別なサービス (ファイルの復元など) に対する課金を、/var/adm/fee ファイルに格納します。このファイルの各エントリは、ユーザーのログイン名、ユーザー ID、および料金から構成されています。このファイルは、runacct プログラムによって毎日チェックされて、新しいエントリが全体のアカウンティングレコードにマージされます。chargefee を実行してユーザーに課金する命令については、「ユーザーに課金する方法」を参照してください。
次に、SunOS の日次アカウンティング機能がどのように動作するかを要約して示します。
システムをマルチユーザーモードに切り替えると、/usr/lib/acct/startup プログラムが実行されます。この startup プログラムは、それぞれアカウンティング機能を呼び出す他のプログラムを実行します。
acctwtmp プログラムは /var/adm/wtmpx に「ブート」レコードを追加します。このレコードには、システム名が wtmpx レコード内のログイン名として示されます。表 32-1 に、raw アカウンティングデータがどのように収集され、どこに格納されるかをまとめて示します。
表 32-1 raw アカウンティングデータ
/var/adm 内のファイル |
情報 |
ファイルを書くプログラム |
書式定義ヘッダ |
---|---|---|---|
login, init |
utmpx.h |
||
|
date |
|
|
|
acctwtmp |
|
|
|
shutacct シェル |
|
|
プロセス数 |
カーネル (プロセス終了時) |
acct.h |
|
|
|
|
|
特別料金 |
chargefee |
acct.h |
|
使用ディスク領域 |
dodisk |
tacct.h |
turnacct プログラムが -on オプションで起動されて、プロセスアカウンティングを開始します。turnacct は、特に /var/adm/pacct 引数を使用して accton プログラムを実行します。
remove シェルスクリプトが、runacct によって sum ディレクトリに保存されている pacct および wtmpx ファイルを「整理」します。
login および init プログラムが、/var/adm/wtmpx にレコードを書き込み、接続セッションを記録します。すべての日付変更 (引数を指定して date を使用) も /var/adm/wtmpx に書き込まれます。acctwtmp を使用したリブートとシャットダウンも /var/adm/wtmpx に記録されます。
プロセスが終了すると、カーネルが /var/adm/pacct ファイルにプロセスごとに 1 レコードを acct.h 形式で書き込みます。
cron は、1 時間ごとに ckpacct プログラムを実行して /var/adm/pacct のサイズを調べます。このファイルが 500 ブロック (デフォルト) よりも大きくなった場合は、turnacct による切り替えが実行されます。(このプログラムは今までの pacct ファイルを他に移して新しいファイルを作成します。) pacct ファイルを小さく分けることの利点は、それらのアカウントレコードを処理するときに障害が発生し、runacct を起動し直そうとしたときに明らかになります。
runacct が毎晩 cron によって実行されます。runacct は /var/adm/pacctn、/var/adm/wtmpx、/var/adm/fee、 /var/adm/acct/nite/disktacct などのアカウンティングファイルを処理して、ログイン別のコマンド要約と利用状況要約を生成します。
/usr/lib/acct/prdaily プログラムが runacct によって 1 日に 1 回実行され、runacct が収集した日次アカウンティング情報 (ASCII 形式) を /var/adm/acct/sum/rprt.MMDD に書き込みます。
monacct プログラムが月に 1 回 (または毎会計期の終わりなど、ユーザーが決めた周期で) 実行されます。monacct プログラムは、sum ディレクトリに格納されているデータに基づいてレポートを作成します。これらのデータは runacct によって毎日更新されています。このレポートを作成後、monacct は sum ディレクトリを「整理」して、新しい runacct データを格納するためのファイルを準備します。
shutdown を使用してシステムをシャットダウンした場合は、shutacct プログラムが自動的に実行されます。shutacct プログラムは /var/adm/wtmpx に理由レコードを書き、アカウンティングプロセスを無効に設定します。
この節では、アカウンティングソフトウェアによって生成される様々なレポートについて説明します。
runacct(1M) シェルスクリプトは、呼び出されるたびに基本的な 4 種類のレポートを生成します。これらのレポートは、接続アカウンティング、毎日のログイン別利用状況、日次および月次合計によって報告されるコマンド利用状況の 3 種類を対象とするレポートと、ユーザーの最後のログイン時刻のレポートです。4 つの基本レポートは次のとおりです。
表 32-2 日次アカウンティングレポート
このレポートは、使用された各端末回線に関する情報を示します。次に例を示します。
Jul 7 02:30:02 1999 DAILY REPORT FOR mercury Page 1 from Wed Jul 07 02:30:02 1999 to Thu Jul 08 02:30:02 1999 1 system boot 1 run-level 3 1 acctg on 1 runacct 1 acctcon TOTAL DURATION IS 1384 MINUTES LINE MINUTES PERCENT # SESS # ON # OFF /dev/pts/5 0 0 0 0 0 /dev/pts/6 0 0 0 0 1 /dev/pts/7 0 0 0 0 0 console 1337 97 1 1 1 pts/3 0 0 0 0 1 pts/4 0 0 0 0 1 pts/5 3 0 2 2 3 pts/6 232 17 5 5 5 pts/7 54 4 1 1 2 pts/8 0 0 0 0 1 pts/9 0 0 0 0 1 TOTALS 1625 -- 9 9 16 |
from および to 行はこのレポートで反映される時間帯、つまりこの前のアカウンティングレポートが生成されてから現在のアカウンティングレポートが生成されるまでの時間を指定します。その次はシステムのリブート、シャットダウン、電源異常からの回復と、acctwtmp プログラムによって /var/adm/wtmpx にダンプされたその他のすべてのレコードです。詳細は、acct(1M) のマニュアルページを参照してください。
このレポートの第 2 部は回線利用状況の内訳です。TOTAL DURATION は、システムがどれだけの時間マルチユーザーモード (端末回線を通してアクセス可能です) であったかを示します。この部分を構成しているカラムを表 32-3 で説明します。
表 32-3 日次レポート
マシンの稼動中は、/var/adm/wtmpx ファイルから接続アカウンティングが準備されるので、このファイルを監視する必要があります。wtmpx ファイルが急速に大きくなる場合は、acctcon -l file < /var/adm/wtmpx を実行してどの tty 回線の使用頻度が最も大きいかを調べてください。割り込みが頻繁に発生する場合は、全般的なシステムの性能が影響を受けることになります。さらに、wtmpx が壊れることもあります。この問題を解決するには、「wtmpx ファイルを修復する方法」を参照してください。
このレポートは、システム資源の利用状況のユーザー別の内訳を示します。次に例を示します。
Jul 7 02:30:02 1999 DAILY USAGE REPORT FOR mercury Page 1 LOGIN CPU (MINS) KCORE-MINS CONNECT (MINS) DISK # OF # OF # DISK FEE UID NAME PRIME NPRIME PRIME NPRIME PRIME NPRIME BLOCKS PROCS SESS SAMPLES 0 TOTAL 1 1 2017 717 785 840 660361 1067 9 7 20 0 root 1 1 1833 499 550 840 400443 408 2 1 0 1 daemon 0 0 0 0 0 0 400 0 0 1 0 2 bin 0 0 0 0 0 0 253942 0 0 1 0 3 sys 0 0 0 0 0 0 2 0 0 1 0 4 adm 0 0 46 83 0 0 104 280 0 1 0 5 uucp 0 0 74 133 0 0 1672 316 0 1 0 71 lp 0 0 0 2 0 0 3798 1 0 1 0 8198 ksm 0 0 8 0 0 0 0 6 1 0 0 52171 pjm 0 0 56 0 234 0 0 56 6 0 20 |
日次利用状況レポートで示される各データを表 32-4 で説明します。
表 32-4 日次利用状況レポート
このレポートはコマンド別のシステム資源の利用状況を示します。このレポートでは、最も使用率の高いコマンドがわかり、それらコマンドがどのようにシステム資源を利用しているかに基づいて、どのようにしたらシステムの最適チューニングが可能かを知ることができます。日次レポートも月次レポートも見た目には同じですが、日次要約レポートは当日だけについてのレポートであるのに対して、月次要約レポートは、会計期の初めから当日までについてのレポートです。つまり、月次レポートは、monacct が最後に実行されたときからの累積データの累積要約を表します。
これらのレポートは TOTAL KCOREMIN によってソートされます。TOTAL KCOREMIN は任意の基準ですが、システムでのドレーンの計算にはすぐれた指標です。
次に日次コマンド要約レポートの例を示します。
Jul 7 02:30:02 1999 DAILY COMMAND SUMMARY Page 1 TOTAL COMMAND SUMMARY COMMAND NUMBER TOTAL TOTAL TOTAL MEAN MEAN HOG CHARS BLOCKS NAME CMDS KCOREMIN CPU-MIN REAL-MIN SIZE-K CPU-MIN FACTOR TRNSFD READ TOTALS 1067 2730.99 2.01 1649.38 1361.41 0.00 0.00 6253571 2305 sendmail 28 1085.87 0.05 0.24 23865.20 0.00 0.19 101544 39 admintoo 3 397.68 0.12 1132.96 3443.12 0.04 0.00 680220 83 sh 166 204.78 0.31 161.13 651.80 0.00 0.00 598158 20 nroff 12 167.17 0.14 0.24 1205.55 0.01 0.59 709048 22 find 10 151.27 0.27 2.72 563.40 0.03 0.10 877971 1580 acctdusg 3 87.40 0.13 2.74 698.29 0.04 0.05 883845 203 lp 10 74.29 0.05 0.22 1397.38 0.01 0.24 136460 57 expr 20 67.48 0.02 0.06 3213.24 0.00 0.34 6380 1 mail.loc 3 65.83 0.01 0.04 11285.60 0.00 0.15 24709 15 cmdtool 1 37.65 0.02 20.13 2091.56 0.02 0.00 151296 1 uudemon. 105 37.38 0.09 0.32 435.46 0.00 0.27 62130 17 csh 6 35.17 0.05 57.28 756.30 0.01 0.00 209560 13 col 12 31.12 0.06 0.26 523.00 0.00 0.23 309932 0 ntpdate 22 27.55 0.05 11.18 599.00 0.00 0.00 22419 0 uuxqt 44 18.66 0.04 0.06 417.79 0.00 0.74 32604 3 man 12 15.11 0.03 7.05 503.67 0.00 0.00 85266 47 . . . |
表 32-5 で、日次コマンド要約レポートに示されるデータをカラム別に説明します。
表 32-5 日次コマンド要約レポート
この月次コマンド要約は、次のただ 1 点の相違を除いて日次コマンド要約と同じです。つまり、月次コマンド要約は monacct が最後に起動されたときからの累積合計を示します。次に例を示します。
Jul 6 02:30:03 1999 MONTHLY TOTAL COMMAND SUMMARY Page 1 TOTAL COMMAND SUMMARY COMMAND NUMBER TOTAL TOTAL TOTAL MEAN MEAN HOG CHARS BLOCKS NAME CMDS KCOREMIN CPU-MIN REAL-MIN SIZE-K CPU-MIN FACTOR TRNSFD READ TOTALS 771 483.70 0.94 8984.09 515.12 0.00 0.00 2248299 179 sh 105 155.41 0.23 429.58 667.94 0.00 0.00 491870 1 uudemon. 85 29.39 0.07 0.29 434.28 0.00 0.23 49630 14 acctcms 5 27.21 0.04 0.04 752.41 0.01 0.90 218880 1 ntpdate 17 21.30 0.04 14.10 605.73 0.00 0.00 18192 0 dtpad 1 19.69 0.01 10.87 2072.70 0.01 0.00 46992 8 sendmail 17 16.75 0.02 0.02 859.04 0.00 0.91 1965 0 acctprc 1 14.92 0.03 0.03 552.69 0.03 0.95 115584 0 uuxqt 34 14.78 0.03 0.04 426.29 0.00 0.92 25194 0 uusched 34 10.96 0.03 0.03 363.25 0.00 0.91 25194 0 sed 40 10.15 0.03 0.09 315.50 0.00 0.36 64162 2 man 5 10.08 0.02 57.58 555.05 0.00 0.00 25773 2 getent 1 7.68 0.01 0.02 921.60 0.01 0.40 20136 0 in.rlogi 5 7.65 0.01 4331.67 611.73 0.00 0.00 87440 0 cp 37 7.28 0.03 0.05 280.08 0.00 0.50 1739 36 date 27 7.24 0.02 0.03 329.12 0.00 0.65 23443 1 ls 15 7.05 0.01 0.02 503.33 0.00 0.79 14123 0 awk 19 6.94 0.02 0.06 372.04 0.00 0.32 666 0 rm 29 6.83 0.02 0.04 301.32 0.00 0.60 2348 17 |
各データ項目については、「日次コマンド要約」を参照してください。
このレポートは、特定のログインが最後に使用された日付を示します。この情報を使用して、使用されていないログインやログインディレクトリを見つけることができます。それらのログインやログインディレクトリは保存して削除できます。次に例を示します。
Jul 7 02:30:03 1999 LAST LOGIN Page 1 . . . 00-00-00 arimmer 00-00-00 lister 99-06-27 pjm 00-00-00 reception 00-00-00 smithe 99-06-27 ksm 00-00-00 release 00-00-00 smsc 99-06-27 root 00-00-00 resch 00-00-00 datab |
/var/adm/pacctn ファイル、または acct.h 形式の任意のファイルの内容は、acctcom プログラムを使用していつでも調べることができます。このコマンドを実行するときに、ファイルも標準入力も指定しなければ、acctcom は pacct ファイルを読み取ります。acctcom は、終了したプロセスに関する情報を示します (実行中のプロセスは ps コマンドで調べることができます)。acctcom のデフォルト出力は次に示す情報を示します。
コマンド名 (スーパーユーザー特権を使用して実行された場合は # 記号)
ユーザー
tty 名 (未知の場合は ? として表示)
開始時刻
終了時刻
実時間 (秒単位)
CPU 時間 (秒単位)
平均サイズ (K バイト単位)
acctcom にオプションを使用することにより、次の情報を得ることができます。
fork/exec フラグの状態 (exec を使用しない fork の場合は 1)
システム終了状態
hog 係数
合計 kcore 分
CPU 係数
転送文字数
読み取りブロック数
表 32-6 で acctcom のオプションを説明します。
表 32-6 acctcom のオプション
オプション |
説明 |
---|---|
-a |
選択したプロセスに関する特定の平均統計を表示する (統計は出力が記録された後に表示される) |
-b
|
ファイルを逆読みし、最後のコマンドから先に表示する (標準入力の読み込みには関係しない) |
-f |
fork/exec フラグおよびシステム終了状態カラムを出力する (出力は 8 進数) |
-h |
平均メモリーサイズに代えて hog 係数を表示する。hog 係数は、経過時間とプロセスが実行中に消費した合計 CPU 利用可能時間との比 (合計 CPU 利用時間/経過時間) |
-i |
入出力カウントを含むカラムを出力する |
-k |
メモリーサイズの代わりに、キロバイト/分ごとのコアサイズの合計値を表示する |
-m |
平均コアサイズ (デフォルト) を表示する |
-q |
平均統計だけを出力する。出力レコードは出力しない |
-r |
CPU 係数 (システム使用時間 / (システム使用時間 + ユーザー使用時間)) を表示する |
-t |
システムおよびユーザー CPU 時間を表示する |
-v |
出力からカラム見出しを除外する |
-C sec |
合計 (システム + ユーザー) CPU 時間が sec 秒を超えたプロセスだけを表示する |
-e time |
time 以前に存在したプロセスを hr[:min[:sec]] の書式で表示する |
-E time |
time 以前に開始されたプロセスを hr[:min[:sec]] の書式で表示する。同じ time を -S と -E の両方に使用すれば、そのときに存在していたプロセスを表示する |
-g group |
group に属しているプロセスだけを表示する |
-H factor |
factor を超えるプロセスだけを表示する。ただし、factor は「hog 係数」(-h オプションを参照) |
-I chars |
chars によって指定されるカットオフ数を超える文字数を転送したプロセスだけを表示する |
-l line |
端末 /dev/line に属しているプロセスだけを表示する |
-n pattern |
pattern 「+」が 1 回以上現れることを意味する以外は、一般的な正規表現に一致するコマンドだけを表示する |
-o ofile |
レコードを出力しないで、レコードを acct.h 形式で ofile にコピーする |
-O sec |
CPU システム時間が sec 秒を超えるプロセスだけを表示する |
-s time |
time 以後に存在したプロセスを hr[:min[:sec]] の書式で表示する |
-S time |
time 以後に開始されたプロセスを hr[:min[:sec]] の書式で表示する |
-u user |
user に属しているプロセスだけを表示する |
メインの日次アカウンティングシェルスクリプトである runacct は、通常はプライムタイムつまり最も忙しい時間帯を避けて cron により起動されます。この runacct シェルスクリプトは、接続、料金、ディスク、プロセス用の各アカウンティングファイルを処理します。さらに、課金目的で prdaily と monacct が使用する日次および累積要約ファイルも準備します。
runacct シェルスクリプトは、エラーが発生した場合、ファイルを壊さないよう注意します。一連の保護機構により、エラーを認識し、インテリジェント診断を提供し、最小のユーザー介入で runacct が起動し直せるように処理を完了しようとします。runacct は、説明メッセージを active というファイルに書き込み、進捗状況を記録します。(runacct が使用するファイルは、特にことわりのないかぎり、ディレクトリ /var/adm/acct/nite にあります。) runacct の実行中、すべての診断出力は fd2log に書き込まれます。
runacct は起動されると lock と lock1 というファイルを作成します。これらのファイルは、runacct が同時に実行されるのを防ぎます。runacct プログラムは、起動時にこれらのファイルが存在すれば、エラーメッセージを出力します。lastdate ファイルには runacct が最後に起動されたときの月日が入っており、このファイルは runacct を 1 日に 1 回しか実行できないようにするために使用されます。runacct がエラーを検出した場合は、エラーメッセージがコンソールに出力され、メールが root と adm に送られ、ロックが解除され、診断ファイルが保存され、実行が終了されます。runacct を再び起動する手順については、「runacct を再起動する方法」を参照してください。
runacct を再起動可能にするために、処理は再入可能な別々の状態に分割されます。statefile というファイルを使用して、最後に終了した状態が追跡されます。各状態が終了するたびに、statefile は更新されて次の状態に反映されます。1 つの状態の処理が終了すると、statefile が読み取られて次の状態が処理されます。runacct は、CLEANUP 状態に達すると、ロックを解除して実行を終了します。各状態は表 32-7 に示すように実行されます。
表 32-7 runacct 状態
状態 |
説明 |
---|---|
SETUP |
turnacct switch コマンドが実行されて新しい pacct ファイルが作成される。/var/adm/pacctn 内の (pacct ファイル以外の) プロセスアカウンティングファイルが /var/adm/Spacctn.MMDD に移される。/var/adm/wtmpx ファイルは (最後に現在時のレコードが追加されて) /var/adm/acct/nite/wtmp.MMDD に移され、新しい /var/adm/wtmp が作成される。closewtmp と utmp2wtmp は、現在ログインしているユーザーに課金処理を行うため、wtmp.MMDD と新しい wtmpx にレコードを追加する |
WTMPFIX |
wtmpfix プログラムが nite ディレクトリ内の wtmp.MMDD ファイルを調べて誤りがないか確認する。データの変更によっては、acctcon を失敗させることがあるので、wtmpx ファイルに日付変更のレコードが現れた場合は、wtmpfix は関係するタイムスタンプを調整しようとする。さらに、wtmpx ファイルからのエントリが壊れていた場合、壊れたエントリをすべて削除する。問題が解決された後のバージョンの wtmp.MMDD が tmpwtmp に書き込まれる |
CONNECT |
acctcon プログラムが使用されて、ctacct.MMDD ファイルに接続アカウントレコードが記録される。これらのレコードは tacct.h 形式になっている。acctcon は、さらに lineuse および reboots ファイルを作成する。reboots ファイルは、wtmpx ファイルで見つかったすべてのブートレコードを記録する |
PROCESS |
acctprc プログラムを使用して、プロセス課金ファイル /var/adm/Spacctn.MMDD が ptacctn.MMDD の合計アカウントレコードに変換される。runacct が失敗した場合に、Spacct ファイルが処理されないように、Spacct ファイルと ptacct ファイルは番号で照合される |
MERGE |
acctmerg プログラムが、プロセスアカウントレコードを接続アカウントレコードとマージして daytacct を作成する |
FEES |
acctmerg プログラムが、fee ファイルからの ASCII tacct レコードを daytacct にマージする |
DISK |
dodisk プロシージャが実行されて disktacct ファイルが生成されている場合は、DISK プログラムがこのファイルを daytacct にマージし、disktacct を /tmp/disktacct.MMDD に移す |
MERGETACCT |
acctmerg プログラムが、daytacct を累積合計課金ファイルである sum/tacct とマージする。daytacct が毎日 sum/tacct.MMDD に保存される。したがって、sum/tacct は壊れたり失われたりしても、作成し直すことができる |
CMS |
acctcms プログラムが数回実行される。acctcms は、まず Spacctn ファイルを使用してコマンド要約を生成し、sum/daycms に書き込む。次に、sum/daycms を累積コマンド要約ファイル sum/cms とマージする。そして、最後に、sum/daycms および sum/cms ファイルからそれぞれ ASCII のコマンド要約ファイル nite/daycms と nite/cms を生成する。lastlogin プログラムを使用してログファイル /var/adm/acct/sum/loginlog が作成される。これは、各ユーザーが最後にログインした時刻を示すレポートである。(runacct が真夜中を過ぎてから実行された場合は、いずれかのユーザーが最後にログインした時刻を示す日付が 1 日分狂うことになる) |
USEREXIT |
インストールに依存しない任意の (ローカル) 課金プログラムをこの時点で取り入れることができる。runacct はそのプログラムを /usr/lib/acct/runacct.local と想定する |
CLEANUP |
一時ファイルが整理され、prdaily が実行され、その出力が sum/rpt.MMDD に保存され、ロックが解除され終了する |
runacct を CLEANUP 状態で起動し直すときは、最後の ptacct ファイルが不完全であるため、このファイルを削除してください。
/var/adm ディレクトリ構造は、使用中のデータ収集ファイルを含みます。
表 32-8 に、/var/adm ディレクトリにあるアカウンティング関連のファイルを示します。
表 32-8 /var/adm ディレクトリ内のファイル
ファイル |
説明 |
---|---|
dtmp |
acctdusg プログラムからの出力 |
fee |
chargefee プログラムからの出力。ASCII tacct レコード |
pacct |
有効なプロセスアカウンティングファイル |
pacctn |
turnacct を使用して切り替えられたプロセスアカウンティングファイル |
Spacctn.MMDD |
runacct の実行中に生成された MMDD 日付のプロセスアカウンティングファイル |
/var/adm/acct ディレクトリには、nite、sum、fiscal の各ディレクトリが設けられ、それぞれに実際のデータ収集ファイルが格納されます。たとえば、nite ディレクトリは runacct プロシージャが毎日繰り返して使用するファイルを格納しています。表 32-9 で、/var/adm/acct/nite ディレクトリ内の各ファイルを簡単に説明します。
表 32-9 /var/adm/acct/nite ディレクトリ内のファイル
ファイル |
説明 |
---|---|
active |
runacct が進捗状況の記録用、警告メッセージ、エラーメッセージの出力用として使用する |
activeMMDD |
runacct がエラーを検出した後の active と同じ |
cms |
prdaily が使用する ASCII の合計コマンド要約 |
ctacct.MMDD |
tacct.h 形式の接続アカウンティングレコード |
ctmp |
acctcon1 プログラムの出力。ctmp.h 形式の接続セッションレコード (acctcon1 と acctcon2 は互換性を保証するために用意) |
daycms |
prdaily が使用する ASCII 日次コマンド要約 |
daytacct |
tacct.h 形式の 1 日分の合計アカウンティングレコード |
disktacct |
tacct.h 形式のディスクアカウンティングレコード。dodisk プロシージャが作成する |
fd2log |
runacct の実行中の診断出力 |
lastdate |
runacct が最後に実行された日 (date +%m%d 書式) |
lock |
runacct の逐次使用の制御用に使用 |
lineuse |
prdaily が使用する tty 回線利用状況レポート |
log |
acctcon からの診断出力 |
log.MMDD |
runacct がエラーを検出後の log と同じ |
owtmp |
前日の wtmpx ファイル |
reboots |
wtmpx からの開始および終了日付とリブートのリスト |
statefile |
runacct の実行中の現在状態の記録用に使用 |
tmpwtmp |
wtmpfix が修復した結果の wtmpx ファイル |
wtmperror |
wtmpfix エラーメッセージの格納用の場所 |
wtmperror.MMDD |
runacct がエラーを検出した後の wtmperror と同じ |
wtmpx ファイルの runacct 用コピー |
sum ディレクトリは、runacct が更新し、monacct が使用する累積要約ファイルを格納します。表 32-10 に、/var/adm/acct/sum ディレクトリ内のファイルを簡単に説明します。
表 32-10 /var/adm/acct/sum ディレクトリ内のファイル
ファイル |
説明 |
---|---|
cms |
内部要約書式による、会計期の合計コマンド要約ファイル |
cmsprev |
最新の更新がなされていないコマンド要約ファイル |
daycms |
内部要約書式による、当日の利用状況を表すコマンド要約ファイル |
loginlog |
各ユーザーが最後にログインした日付のレコード。lastlogin によって作成され、prdaily プログラム内で使用される |
rprt.MMDD |
prdaily プログラムの保存出力 |
tacct |
会計期の累積合計アカウンティングファイル |
tacctprev |
最新の更新がない点を除いて tacct と同じ |
tacct.MMDD |
MMDD 日付分の合計アカウンティングファイル |
fiscal ディレクトリは monacct が作成する定期的要約ファイルを格納します。表 32-11 で、/var/adm/acct/fiscal ディレクトリ内の各ファイルを説明します。
表 32-11 /var/adm/acct/fiscal ディレクトリ内のファイル
ファイル |
説明 |
---|---|
cmsn |
内部要約書式の、会計期 n の合計コマンド要約ファイル |
fiscrptn |
会計期 n の rprtn と同じレポート |
tacctn |
会計期 n の合計アカウンティングファイル |
次に示す runacct により生成されるファイル (/var/adm/acct にあります) には特に注意する必要があります。
表 32-12 runacct が生成するファイル
ファイル |
説明 |
---|---|
nite/lineuse |
runacct は acctcon を呼び出して、/var/adm/acct/nite/tmpwtmp から端末回線の利用状況に関するデータを収集し、それらのデータを /var/adm/acct/nite/lineuse に書き込む。prdaily はこれらのデータを使用して回線利用状況を報告する。このレポートは特に不良回線の検出に有効となる。ログアウト回数とログイン回数との比率が 3:1 を超える場合は、回線に障害がある確率が大きい |
nite/daytacct |
tacct.h 形式の当日の合計課金ファイル |
sum/tacct |
このファイルは、毎日の nite/daytacct の累積であり、課金の目的に使用できる。このファイルは、毎月または毎会計期ごとに monacct プロシージャによって新たに累積が開始される |
sum/daycms |
runacct は acctcms を呼び出して、当日に使用されたコマンドに関するデータを処理する。これらの情報は /var/adm/acct/sum/daycms に格納される。このファイルの内容は毎日のコマンド要約。このファイルの ASCII バージョンは /var/adm/acct/nite/daycms |
sum/cms |
毎日のコマンド要約の累積。monacct が実行されることによって新たに累積が開始される。ASCII バージョンは nite/cms |
sum/loginlog |
runacct は lastlogin を呼び出して、/var/adm/acct/sum/loginlog のログインのうち最後にログインした日付を更新する。lastlogin は、さらにこのファイルから有効でなくなったログインを削除する |
sum/rprt.MMDD |
runacct が実行されるたびに、prdaily によって印刷された日次レポートのコピーが保存される |