Solaris のシステム管理 (上級編)

システムアカウンティングの設定

システムアカウンティングは、システムがマルチユーザーモード (実行レベル 2) のときに実行されるように設定できます。このタスクには通常、次の内容が含まれます。

  1. /etc/rc0.d/K22acct および /etc/rc2.d/S22acct 起動スクリプトの作成

  2. crontab ファイル /var/spool/cron/crontabs/adm および /var/spool/cron/crontabs/root の変更

次の表に、デフォルトのアカウンティングスクリプトを説明します。

表 9–1 デフォルトのアカウンティングスクリプト

目的 

アカウンティングスクリプト 

マニュアルページ 

実行頻度 

/usr/adm/pacct ログファイルのサイズをチェックし、ファイルが大きくなりすぎていないことを確認する

ckpacct

acctsh(1M)

定期的 

接続、ディスク、および料金のアカウンティング情報を処理する。このスクリプトから、処理したくないアカウンティング機能のコマンドを削除できる 

runacct

runacct(1M)

日次 

会計アカウンティング要約レポートを月に 1 回のベースで生成する。このスクリプトの実行頻度を決めることができる。このスクリプトから、使用したくないアカウンティング機能のコマンドを削除できる 

monacct

acctsh(1M)

会計期間に基づく 

デフォルトでどのアカウンティングスクリプトを実行するのかを選択できます。これらのエントリを crontab ファイルに追加すると、システムアカウンティングは自動的に実行されるようになります。

Procedureシステムアカウンティングを設定する方法

  1. スーパーユーザーになるか、同等の役割を引き受けます。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』「RBAC の構成 (作業マップ)」を参照してください。

  2. 必要な場合は、pkgadd コマンドを使用して、システムに SUNWaccr パッケージと SUNWaccu パッケージをインストールします。

  3. /etc/init.d/acct を実行レベル 2 の起動スクリプトとしてインストールします。


    # ln /etc/init.d/acct /etc/rc2.d/S22acct
    
  4. /etc/init.d/acct を実行レベル 0 の停止スクリプトとしてインストールします。


    # ln /etc/init.d/acct /etc/rc0.d/K22acct
    
  5. ckpacctrunacct、および monacct スクリプトが自動的に起動するように、adm ユーザーの crontab ファイルに次の行を追加します。


    # EDITOR=vi; export EDITOR
    # crontab -e adm
    0 * * * * /usr/lib/acct/ckpacct
    30 2 * * * /usr/lib/acct/runacct 2> /var/adm/acct/nite/fd2log
    30 7 1 * * /usr/lib/acct/monacct
  6. dodisk スクリプトが自動的に起動するように、rootcrontab ファイルに次の行を追加します。


    # crontab -e
    30 22 * * 4 /usr/lib/acct/dodisk
  7. /etc/acct/holidays を編集して祭日と休日を含めます。

    詳細については、holidays(4) のマニュアルページと、次の例を参照してください。

  8. システムをリブートするか、次のように入力して、手動でシステムアカウンティングを起動します。


    # /etc/init.d/acct start
    

例 9–1 アカウンティングを設定する (adm の crontab)

この編集された adm の crontab には、ckpacctrunacct、および monacct スクリプトのエントリが含まれています。


#ident  "@(#)adm        1.5     92/07/14 SMI"    /* SVr4.0 1.2   */
#
# The adm crontab file should contain startup of performance 
# collection if the profiling and performance feature has been 
# installed.
0 * * * * /usr/lib/acct/ckpacct
30 2 * * * /usr/lib/acct/runacct 2> /var/adm/acct/nite/fd2log
30 7 1 * * /usr/lib/acct/monacct


例 9–2 アカウンティングを設定する (root の crontab)

この編集された root の crontab には、dodisk プログラムのエントリが含まれています。


#ident  "@(#)root       1.19    98/07/06 SMI"   /* SVr4.0 1.1.3.1       */
#
# The root crontab should be used to perform accounting data collection.
#
#
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
30 22 * * 4 /usr/lib/acct/dodisk


例 9–3 アカウンティングを設定する (/etc/acct/holidays)

次に、/etc/acct/holidays ファイルの例を示します。


* @(#)holidays	January 1, 2004
*
* Prime/Nonprime Table for UNIX Accounting System
*
* Curr	Prime	Non-Prime
* Year	Start	Start
*
  2004	0800	1800
*
* only the first column (month/day) is significant.
*
* month/day	Company
* 		Holiday
*
1/1		New Years Day
7/4		Indep. Day
12/25		Christmas