snap コマンド

目的

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

構文

snap [-@] [-a ][-z "製品名=prd_name,..." | "class=myclass,..."|ALL][-M タイムアウト][-A ] [-b ] [-B] [-c ] [-C] [ -D ] [-f ] [-F] [-g ] [-G ] [-i] [-k ] [-l ] [-L ][-n ] [-N ] [-p ] [-r ] [-R ] [ -s ] [-S] [-t ] [-T ファイル名][-u user1,....] [-w ] [-X] [-Y][-o OutputDevice] [-d Dir] [-v Component] [ '-O FileSplitSize] [-P Files] [script1 script2... | All | file:filepath][-U]

スナップ -e [ -m Nodelist ] [-d ディレクトリー ]

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

スナップ -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フラグで指定されたその他のユーザー定義ディレクトリにある、スナップ既知のコンポーネントサブディレクトリの圧縮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 ノデリスト HACMP 情報を収集するためのノード名リスト (コンマ区切り)。
注: 現在、このフラグは -e フラグと一緒の場合にのみ有効です。
-M タイムアウト スナップ・フレームワークが 1 つの登録済み外部製品デバッグ・データ・コマンドを強制終了するまで待つ、最大タイムアウト値を秒数で指定します。 デフォルトのタイムアウト値は 300 秒です。
-n ネットワーク・ファイルシステム (NFS) 情報を集めます。
-N 必要とされるフリー・スペースのチェックを抑止します。
-o OutputDevice 圧縮されたイメージを指定されたデバイスにコピーします。
-O FileSplitSize snap 出力ファイルをより小さいファイルに分割できるようにするために使用します。 これらのファイルのサイズは、 -O オプションに対するパラメーターとして指定され、メガバイト単位で指定する必要があります。 このフラグは、 -c フラグが指定されている場合にのみ使用できます。
-p プリンター情報を集めます。
-P ファイル 指定された Filesfwdump_dir ディレクトリーから検索します。 -P * を指定した場合は、ディレクトリー内のすべてのファイルが収集されます。 ファイルは general サブディレクトリーに置かれます。 -C snap オプションは、 -P*と同じように動作します。
-r snap コマンドの出力を /tmp/ibmsupt ディレクトリーから除去します。
-R SCSI RAID 情報を集めます。
-s システム・ネットワーク体系 (SNA) 情報を集めます。
-S セキュリティー・ファイルを、-g フラグを指定して収集した一般的な情報に含めます。
-t 伝送制御プロトコル情報を集めます。
-T ファイル名 複数 CPU トレースのログ・ファイルをすべて集めます。 基本ファイル trcfile だけは、-g フラグで取り込まれます。
-u user1,user2... シェルおよび System Management Interface Tool (SMIT) ヒストリーの収集対象となるユーザー名をコンマで区切って指定します。
-v コンポーネント snap コマンドにより実行されたコマンドの出力を表示します。 指定した名前のファイルまたはファイル・グループを表示するために、このフラグを使用してください。
注: Ctrl-C キー・シーケンスを押して、 snap コマンドに割り込みます。 次のようなオプションでプロンプトが戻されます。 現在の操作に戻るには 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/'スクリプト名'.アウトと$SNAPDIR/'スクリプト名'.エラー'に保存するからである。

以下の例は、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 コマンドを実行します。 Virtual I/Oサーバーからデータを収集する必要がある場合は、Virtual I/Oサーバーの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
製品の名前を指定します。 この同じ名前は、製品のデバッグ・データ収集スクリプトの登録解除に使用されます。
クラス
クラスは、ストレージ、ネットワーク、またはデータベースとすることができます。 製品を基にして適切なクラスを選択するか、またはユーザー独自のクラスを定義することができます。 クラスは、製品の種別に役立ちます。 スナップ・ドキュメントにあるその他のクラスを追加する場合は、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. 以下のコマンドを入力して、単一クラスターに属するノード 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. ノード node1 および node2から HACMP snap -e データのみを実行依頼するには、次のコマンドを入力します。
    snap -e -m node1,node2
    snap -c

    サービス担当者の指示に従って、<paxpax.zファイルをIBMに提出してください。

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

    サービス担当者の指示に従って、<paxpax.zファイルをIBMに提出してください。

  11. 製品 abc/usr/lpp/abc/debug_abc ディレクトリーにあるデバッグ・スクリプトをクラス storage に登録するには、次のコマンドを入力します。
    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 ユーザー定義のディレクトリーが含まれます。