snap コマンド

目的

システム構成情報を収集します。

構文

snap [-@] [ -a ] [-z "product_name=prd_name,..." | "class=myclass,.." | ALL] [-M Timeout][ -A ] [ -b ] [ -B ] [ -c ] [ -C ] [ -D ] [ -f ] [ -F] [ -g ] [ -G ] [ -i ] [ -k ] [ -l ] [ -L ][ -n ] [ -N ] [ -p ] [ -r ] [ -R ] [ -s ] [ -S ] [ -t ] [ -T Filename ][-u user1,...] [ -w ] [ -X ] [ -Y ][ -o OutputDevice ] [ -d Dir ] [ -v Component ] [ -O FileSplitSize ] [ -P Files ] [ script1 script2 ... | All | file:filepath ] [-U]

snap -e [ -m Nodelist ] [ -d Dir ]

snap -z ADD ["product_name=prod_name" "class=myclass" "command_path=/tmp/myprod_myscript -a"]

snap -z DELETE ["product_name=prod_name" ]

説明

snap コマンドは、システム構成情報を集めて、 その情報を pax ファイルに圧縮します。 このファイルは、テープや DVD などのデバイスに書き込んだり、リモート・システムに転送したりすることができます。snap コマンドによって集められた情報は、システム問題の識別および解決に必要になることがあります。
注: snap コマンドを実行するには、root ユーザー権限が必要です。圧縮されたイメージを DVD にコピーするには、snap -o /dev/cd0 コマンドを使用してください。イメージをテープにコピーするには、snap -o /dev/rmt0 コマンドを使用してください。

圧縮されたイメージをディスケットにコピーするには、snap -o /dev/rfd0 コマンドを使用してください。 イメージをテープにコピーするには、snap -o /dev/rmt0 コマンドを使用してください。

エラー・ログの内容を含め、すべてのシステム情報を収集するには、少なくとも 8 MB の一時ディスク・スペースが必要です。snap -a コマンドですべてのシステム情報を収集しない場合は、必要なディスク・スペースはそれより少なくなります (選択するオプションに依存します)。
注: テープを用いてスナップ・イメージをソフトウェアのサポート用に IBM® に送る予定の場合、そのテープは以下のいずれかのフォーマットでなければなりません。
  • 8 mm、2.3 GB の容量
  • 8 mm、5.0 GB の容量
  • 4 mm、4.0 GB の容量

その他のフォーマットを使用すると、IBM ソフトウェア・サポートによる内容の検査ができなくなったり、遅れたりします。

snap -g コマンドは、以下の情報を含む一般システム情報を収集します。

  • エラー報告
  • カスタマイズされたオブジェクト・データ・マネージャー (ODM) データベースのコピー
  • トレース・ファイル
  • ユーザー環境
  • 物理メモリーおよびページング・スペースの量
  • デバイスおよび属性情報
  • セキュリティー・ユーザー情報
  • システムの構成およびチューニング・パラメーター情報

snap -g コマンドの出力は、/tmp/ibmsupt/general/general.snap ファイルに書き込まれます。

snap コマンドは、 snap コマンドの出力用のデフォルト・ディレクトリーである /tmp/ibmsupt ディレクトリー内で使用可能なスペースを検査します。 -d フラグを使用して、出力を別のディレクトリーに書き込むことができます。 snap コマンドの出力を入れる十分なスペースがない場合は、ファイルシステムを拡張しなければなりません。

snap コマンドを実行するたびに、情報が以前作成されたファイルに追加されます。 それまでに集めて保管されている情報を除去するには、-r フラグを使用してください。

フラグ

項目 説明
-@ ワークロード区画情報を集めます。
-a HACMP 特定のデータを除き、すべてのシステム構成情報を収集します。 HACMP 特定のデータを収集するには、 snap -e オプションを実行します。

外部製品用の登録済みデバッグ・データ・スクリプトの収集が実行され、それらのデータはシステム構成の一部としても組み込まれます。-z フラグを用いてそれらの名前を指定して、選択された製品に対して収集を制限することができます。

-a オプションには、少なくとも 8 MB の一時ディスク・スペースが必要です。

-A 非同期 (TTY) 情報を集めます。
-b SSA 情報を集めます。
-B SSA アダプター・ダンプのコレクションをバイパスします。 -b フラグも指定されている場合は、-B フラグのみが働きます。 それ以外の場合は、-B フラグは無視されます。
-c /tmp/ibmsupt ディレクトリー・ツリーまたは -d フラグで指定された他のユーザー定義ディレクトリー内の snap の既知のコンポーネント・サブディレクトリーの圧縮 pax イメージ (snap.pax.Z ファイル) を作成します。
注: このオプションで収集されなかった情報は、-c フラグを使用する前に snap ディレクトリー・ツリーにコピーする必要があります。システムの問題を明示するためのテスト・ケースが必要な場合は、 pax ファイルを圧縮する前に、 そのテスト・ケースを /tmp/ibmsupt/testcase ディレクトリーにコピーしてください。 ユーザーによって定義されたディレクトリーはすべて、/tmp/ibmsupt/other ディレクトリーに保存し、snap コマンドで圧縮する必要があります。
-C fwdump_dir ディレクトリー内のすべてのファイルを取り出します。 ファイルは「general」サブディレクトリーに置かれます。 -C snap オプションの動作は、-P* と同じです。
-D ダンプおよび /unix 情報を集めます。 1 次ダンプ・デバイスが使用されます。
注:
  1. bosboot -k を使用して、 実行中のカーネルが /unix ではないと指定した場合は、間違ったカーネルが集まります。 ダンプを取得する際に /unix が使用中のカーネルであること、またはそれにリンクされていることを確認してください。
  2. ダンプ・ファイルがホスト・マシンにコピーされた場合、snap コマンドは、 /tmp/ibmsupt/dump ディレクトリー内のダンプ・イメージを集めません。 代わりに、実際のダンプ・イメージへのリンクがダンプ・ディレクトリー内に作成されます。
-d AbsolutePath オプションの snap コマンド出力ディレクトリーを識別します (/tmp/ibmsupt がデフォルトです)。 絶対パスを指定する必要があります。
-e HACMP 情報を集めます。
注: HACMP に固有のデータは、クラスターに属するすべてのノードから収集されます。 このフラグは、-m-d を除く他のフラグとは併用できません。
-f ファイルシステム情報を集めます。
-F フラッシュ・アダプター情報を集めます。
-g lslpp -hac コマンドの出力を集めます。これは、実際のオペレーティング・システム環境を再作成するために必要です。 出力を /tmp/ibmsupt/general/lslpp.hac ファイルに書き込みます。 また、一般的なシステム情報も収集して、その出力を /tmp/ibmsupt/general/general.snap ファイルに書き込みます。
-G 事前に定義されたオブジェクト・データ・マネージャー (ODM) ファイルを、 -g フラグを指定して収集した一般的な情報に含めます。
-i インストールのデバッグ重要プロダクト・データ (VPD) 情報を集めます。
-k カーネル情報を集めます。
-l プログラム言語情報を集めます。
-L LVM 情報を集めます。
-m Nodelist HACMP 情報を収集するためのノード名をリストします (コンマで区切られる)。
注: 現在このフラグは、-e フラグ付きの場合のみ有効です。
-M Timeout スナップ・フレームワークが 1 つの登録済み外部製品デバッグ・データ・コマンドを強制終了するまで待つ、最大タイムアウト値を秒数で指定します。デフォルトのタイムアウト値は 300 秒です。
-n ネットワーク・ファイルシステム (NFS) 情報を集めます。
-N 必要とされるフリー・スペースのチェックを抑止します。
-o OutputDevice 圧縮されたイメージを指定されたデバイスにコピーします。
-O FileSplitSize snap 出力ファイルを小さいファイルに分割できるようにするために使用します。それらのファイルのサイズは、-O オプションのパラメーターとして指定します。単位はメガバイトです。このフラグは、-c フラグを指定した場合にのみ使用できます。
-p プリンター情報を集めます。
-P Files 指定された Filesfwdump_dir ディレクトリーから検索します。-P * を指定した場合は、ディレクトリー内のすべてのファイルが収集されます。ファイルは general サブディレクトリーに置かれます。 -C snap オプションの動作は、 -P* と同じです。
-r snap コマンドの出力を /tmp/ibmsupt ディレクトリーから除去します。
-R SCSI RAID 情報を集めます。
-s システム・ネットワーク体系 (SNA) 情報を集めます。
-S セキュリティー・ファイルを、-g フラグを指定して収集した一般的な情報に含めます。
-t 伝送制御プロトコル情報を集めます。
-T Filename 複数 CPU トレースのログ・ファイルをすべて集めます。 基本ファイル trcfile だけは、-g フラグで取り込まれます。
-u user1,user2... シェルおよび System Management Interface Tool (SMIT) ヒストリーの収集対象となるユーザー名をコンマで区切って指定します。
-v Component snap コマンドにより実行されたコマンドの出力を表示します。 指定した名前のファイルまたはファイル・グループを表示するために、このフラグを使用してください。
注: snap コマンドを中断するには、Ctrl-C キー・シーケンスを押してください。次のようなオプションでプロンプトが戻されます。 現在の操作に戻るには Enter キーを押してください。 現在の操作を終了するには S キーを押してください。 snap コマンドを完全に終了するには Q キーを押してください。
-w WLM 情報を集めます。
-X X.25 (パケット・ベースの通信プロトコル) 情報を収集します。
-Y InfiniBand 情報を集め、/tmp/ibmsupt/IB ディレクトリーに保存します。
-z 外部製品のデバッグ・データ収集を促進します。
  • ADD キーワードにより、外部製品は、デバッグ・データ収集スクリプトをスナップ・フレームワークに登録することができます。
  • DELETE キーワードにより、外部製品は、デバッグ・データ収集スクリプトのスナップ・フレームワークへの登録を解除することができます。

製品名が product_name 属性に対するパラメーターとして指定されると、登録済みデバッグ・データ収集コマンドが実行されます。複数の製品のデータを収集するには、必要な製品名を product_name 属性に指定します。

クラス名が class 属性に対するパラメーターとして指定されると、そのクラスのすべての製品の登録済みデバッグ・コマンドが実行されます。 複数のクラスのデータを収集するには、必要なクラス名を class 属性に指定します。

ALL がパラメーターとして指定されると、すべてのクラスのすべての製品の登録済みデバッグ・データ収集コマンドが実行されます。

いずれかのスクリプトが実行されると、システムは、SNAPDEBUGDATA 環境変数によって指し示されたリストに製品名を追加します。

-U ライブ・カーネル更新情報を収集し、それを /tmp/ibmsupt/liveupdate ディレクトリーに保存します。

パラメーター

引数

実行されるサード・パーティー・スクリプトの名前は、snap のパラメーターとして指定します。パラメーターは、単一のワードの場合と、引用符で囲んだワードのリストの場合があります。パラメーターを引用符で囲んだ場合、リスト内の最初のパラメーターはスクリプトの名前を表し、後続のワードはスクリプトに渡される引数を表します。

All をパラメーターとして指定すると、スクリプト・リポジトリー内のすべてのスクリプトが実行されます。この場合は、スクリプト・パラメーターが渡されない場合があります。

file: キーワードを使用し、そのすぐ後にファイルへのパスを指定した場合は、実行するスクリプトを取得するためにそのファイルが読み取られます。ファイルの各行は、スクリプトと、そのスクリプトに対するオプション・パラメーターを表します。

snap スクリプト

サード・パーティー・スクリプトは、/usr/lib/ras/snapscripts で実行可能でなければなりません。また、下記のガイドラインに従わなければなりません。パス 1 の間に呼び出されると、スクリプトはそのサイズの推定量を snap に戻す必要があります。 パス 2 では、データを収集し、それを snap の指定に従って保管します。

スクリプトは、環境変数 SNAPDIR、PASSNO、SCRIPTSIZE、および SCRIPTLOG を読み取って使用する必要があります。

スクリプトまたはコマンドは、SNAPDEBUGDATA 変数を使用して、スナップ・スクリプトによって収集されたデバッグ・データを認識することもできます。この変数は、snap コマンドの実行時のデータ収集に使用する製品のコンマで区切られた名前を含みます。

出力ファイルはすべて $SNAPDIR に書き込む必要があります。これはスクリプトがその出力を保管するディレクトリーです。PASSNO 変数には、スクリプトが呼び出される際の snap フェーズが含まれています。 最初のパスのときに、スクリプトは 2 度目のパスの間に書き込むデータの推定サイズを計算します。次に、スクリプトは、$SCRIPTSIZE が指すファイルにその推定数値を書き込みます。ファイルに 保存される値は 10 進数でなければなりません。snap は、スクリプトのすべてのデバッグ・データが 保存されるべきログ・ファイルにパスを渡します。 snap は、標準出力と標準エラーを $SNAPDIR/ScriptName .out と $SNAPDIR/ScriptName .err にそれぞれ保存するため、スクリプトで標準出力と標準エラーをリダイレクトすることはできません。

以下の例は、snap のスクリプトを示したものです。
#!/usr/bin/ksh


if [ "$PASSNO" = 1 ]
then
         (( size=99999 ))
        .... 
        # this is where code to do the size estimation should go.
        ....
        echo $size > $SCRIPTSIZE

else if [ "$PASSNO" = 2 ]
then
        # debug information should go to $SCRIPTLOG
        echo "Debug Data" >> $SCRIPTLOG

        # .....where the work to collect the data takes place
        # ...

        # The data collected should be written to $SNAPDIR        .
        touch $SNAPDIR/foo_output1
        touch $SNAPDIR/foo_output2
fi
fi
注: 仮想 SCSI デバイスに関する情報を収集するには、snap client_collect,all コマンドを実行します。仮想入出力サーバーからデータを収集する必要がある場合は、仮想入出力サーバーの snap コマンドのページを参照してください。このページでは、AIX®snap コマンドとは異なる構文が使用されています。
snap コマンドを -a または -g フラグを指定して実行する場合、以下のスクリプトを実行できます。
  • -a フラグを指定して実行する場合: svCollect、client_collect、lsvirt
  • -g フラグを指定して実行する場合: svCollect、client_collect

snap 出力の分割

snap 出力は、分割された場合、例えば以下のようになります。

% ls -l
total 112048
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xaa
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xab
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xac
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xad
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xae
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xaf
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xag
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xah
-rw-r--r--   1 lmic     adm         6291456 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xai
-rw-r--r--   1 lmic     adm          744518 Nov 26 09:56 snap.hastings.112603095649.pax.Z.xaj

サード・パーティー・スクリプトの実行

外部製品のデバッグ・データ収集のコマンドまたはスクリプトは、スタンドアロン実行可能プログラムです。このスクリプトは、ユーザー定義のデバッグ・データの収集に使用できるようにするために、スナップ・フレームワークに登録されます。これらのスクリプトは、ユーザーの自由裁量により登録を解除することができます。

システムで定義されている ODM クラスを以下に示します。

#define DEFAULTSIZE 256
#define DATA_VALUESIZE 1024

class snap_config {
        char product_name[DEFAULTSIZE]; key
        char class[DEFAULTSIZE];key
        char command_path[DATA_VALUESIZE];
        vchar sc_reserved1[DATA_VALUESIZE];
        vchar sc_reserved2[DATA_VALUESIZE];
}
product_name
製品の名前を指定します。この同じ名前は、製品のデバッグ・データ収集スクリプトの登録解除に使用されます。
class
クラスは、ストレージ、ネットワーク、またはデータベースとすることができます。製品を基にして適切なクラスを選択するか、またはユーザー独自のクラスを定義することができます。クラスは、製品の種別に役立ちます。ユーザーは、snap ドキュメンテーションで他の任意のクラスを追加するために IBM サービス担当員に問い合わせることができます。
command_path
コマンドまたは実行可能プログラムならびにそのオプションのパス。sc_reserved1 および sc_reserved2 が予約済みです。

サード・パーティー・デバッグ・スクリプトのスナップ・フレームワークへの登録

登録は、以下の 2 つの方法で行うことができます。
  1. エントリーを追加するために odmadd コマンドを明示的に実行することができます。 このような場合:
    • スクリプトまたは実行可能プログラムを /usr/lib/ras/snapscript/bin/<productname> ディレクトリーにコピーする必要があります。
    考慮点:
    1. odmadd コマンドを実行する前に次のコマンドを入力する必要があります。
      export ODMDIR=/usr/lib/objrepos
    2. odmadd コマンドの完了後に、ODMDIR コマンドの以前の値をリストアすることができます。
    3. snap コマンドを引き続き実行できます。例えば、myfile の内容を以下に示します。
      product_name=myprod
      class=myclass
      command_path=/usr/lib/ras/snapscripts/bin/prod_name/myscript1.sh -t 10
      export ODMDIR=/usr/lib/objrepos
      odmadd myfile
    注: ODM への直接エントリーを行うユーザーは、重複エントリーを引き受ける必要があります。これは、snap コマンドが特定の製品名に対して処理するエントリーは 1 つだけであるためです。そのため、odmdelete コマンドは、odmadd コマンドの呼び出し前に実行する必要があります。
  2. ADD キーワードは、-z フラグと一緒に使用します。
注:
  • 1. デバッグ・バイナリーを変更または更新する場合、ユーザーは、最新のバイナリーでスナップ・リポジトリーを更新するためにコンポーネントを再登録する必要があります。
  • 2. command_path 変数の一部として複数のコマンドを組み合わせることはサポートされません。例えば、次の形式はサポートされません。
    command_path=<path>/ls|<path>/grep myfile 
  • 3. 特殊文字 ('<| など) は、command_path 変数に対する値としてサポートされません。

サード・パーティー・デバッグ・スクリプトのスナップ・フレームワークからの登録解除

登録解除は、以下の 2 つの方法で行うことができます。
  1. odmdelete コマンドを使用して、製品の登録を解除します。例えば、次の例では、
    export ODMDIR=/usr/lib/objrepos
    odmdelete -o snap_config -q product_name=productname
  2. DELETE キーワードは、-z フラグと一緒に使用します。例えば、次の例では、
    Snap –z DELETE product_name=productname

  1. システム構成情報をすべて収集するには、次のコマンドを入力します。
    snap -a
    このコマンドの出力は、/tmp/ibmsupt ディレクトリーに書き込まれます。
  2. /tmp/ibmsupt ディレクトリーに入っているすべてのファイルの pax イメージを作成するには、次のコマンドを入力します。
    
    snap -c
  3. lslpp -hac コマンドの出力を含む一般的なシステム構成情報を収集するには、次のコマンドを入力します。
    snap -g -o /dev/rfd0
    出力は、/tmp/ibmsupt/general/lslpp.hac および /tmp/ibmsupt/general/general.snap ファイルに書き込まれます。 また、このコマンドは、システム情報を取り外し可能ディスケットにも書き込みます。
  4. 1 つのクラスターに属するノード node1 および node2 から HACMP 固有の情報を集めるには、以下のコマンドを入力します。
    snap -e -m node1,node2
    出力は /tmp/ibmsupt/hacmp ディレクトリーに書き込まれます。
  5. スクリプト foo1、foo2、および foo3 があって、foo1 は引数をとらず、foo2 は 3 つの引数をとり、foo3 は 1 つの引数を取るとき、これらのスクリプトを実行するには、次のように入力します。
    snap  foo1 "foo2 -x -y 3" "foo3 6"
    宛先ディレクトリーがデフォルトの /tmp/ibmsupt であるとすると、出力は、/tmp/ibmsupt/snapscripts/foo1/tmp/ibmsupt/snapscripts/foo2 および /tmp/ibmsupt/snapscripts/foo3 に書き込まれます。
  6. All パラメーターを指定して、すべてのスクリプトを実行するには、次のように入力します。
    snap All
    注: この場合、パラメーターは渡されません。
  7. 実行するスクリプトの名前とオプション・パラメーター・リストが入っているファイルへのパスを指定するには、次のように入力します。
    snap file:/tmp/scriptnames
    例 5 からスクリプトを実行するサンプル入力ファイルは、以下のとおりです。
    foo1 
    foo2 -x -y 3
    foo6
  8. snap 出力を 4MB ファイルに分割することが望まれる場合は、以下のように入力します。
    snap -a -c -O 4
  9. HACMP snap -e データのみをノード node1node2 から実行依頼するには、次のコマンドを入力します。
    snap -e -m node1,node2
    snap -c

    サービス担当員の指示に従って、<pax.z> ファイルを IBM に実行依頼します。

  10. すべての snap データをノード node1node2 から実行依頼するには、以下のコマンドを入力します。
    snap -e -m node1,node2
    snap -a
    snap -c 

    サービス担当員の指示に従って、<pax.z> ファイルを IBM に実行依頼します。

  11. クラス storage の製品 abc/usr/lpp/abc/debug_abc ディレクトリーにあるデバッグ・スクリプトを登録するには、次のコマンドを入力します。
    snap –z ADD "product_name=abc" "class=storage" "command_path=/usr/lpp/abc/debug_abc –a"
  12. 製品 abc のデバッグ・スクリプトの登録を解除するには、次のコマンドを入力します。
    snap –z DELETE "product_name=abc"
  13. 複数の製品のデバッグ・データを収集するには、次のコマンドを入力します。
    snap –z "product_name=abc, product_name=def"

ファイル

項目 説明
/usr/sbin/snap snap コマンドが入っています。
/tmp/ibmsupt snap コマンドの出力が入っています。
/tmp/ibmsupt/general/lslpp.hac lslpp -hac コマンドの出力が入っています。 これは、実際のオペレーティング・システム環境を再作成するために必要です。
/tmp/ibmsupt/general/general.snap snap -g コマンドで収集された一般的なシステム情報が入っています。
/tmp/ibmsupt/testcase ユーザーのシステムの問題を明示するテスト・ケースが入っています。
/tmp/ibmsupt/other ユーザー定義のディレクトリーが含まれます。