非対話モードでは、ASMCMDの起動時にコマンドラインにコマンドおよびコマンド・オプションを含めることにより、単一のASMCMDコマンドを実行します。ASMCMDはコマンドを実行し、必要な場合は出力を生成し、終了します。非対話モードは、特にスクリプトの実行に便利です。
ほとんどのオペレーティング・システムでは、非対話モードでASMCMDコマンドを実行する場合、ワイルドカード文字を引用符で囲む必要があります。
非対話モードでASMCMDを実行するには、コマンド・プロンプトで次のように入力します。この場合、command
は任意の有効なASMCMDコマンドで、options
はコマンド・オプションのリストです。
asmcmd
command
options
非対話モードでは、ASMCMDは表10-3に示すコードを戻します。
表10-3 ASMCMDのリターン・コード
タイプ | リターン・コード | 説明 |
---|---|---|
一般 |
0 |
コマンドに問題はありません。 |
一般 |
1 |
内部エラーです。 |
一般 |
255または-1 |
コマンドにより戻された外部ユーザー・エラーです。 |
|
0 |
結果にはメンバー・ディスクのみが含まれます。 |
|
1 |
結果には候補ディスクのみが含まれます。 |
|
2 |
結果にはメンバー・ディスクおよび候補ディスクの両方が含まれます。 |
例10-2に、非対話モードでASMCMDを実行する方法を示します。1番目のコマンドでは、ls
コマンドを実行してOracle ASMインスタンスのディスク・グループをリストします。2番目のコマンドでは、lsod
コマンドの出力をmy_lsod_test
ファイルにリダイレクトします。3番目のコマンドでは、ワイルドカード文字のパターンを使用してlsdsk
を実行し、data
ディスク・グループの特定のディスクをリストします。ほとんどのオペレーティング・システムでは、非対話モードでASMCMDコマンドを実行する場合、ワイルドカード文字を引用符で囲む必要があることに注意してください。
例10-3では、間違ったディスク・グループ名によりエラーが発生し、リターン・コード(255)が表示されます。
例10-4に、スクリプト内で非対話モードでASMCMDコマンドを実行する例を示します。
例10-2 非対話モードでのASMCMDコマンドの実行
$ asmcmd ls -l State Type Rebal Name MOUNTED NORMAL N DATA/ MOUNTED NORMAL N FRA/ $ asmcmd lsod --suppressheader -G data > my_lsod_test $ asmcmd lsdsk -G data '/devices/diska*' Path /devices/diska1 /devices/diska2 /devices/diska3
例10-3 非対話モードでのASMCMDの実行時のリターン・コードの表示
$ asmcmd ls -l dat ASMCMD-08001: diskgroup 'dat' does not exist or is not mounted $ echo $? 255
例10-4 スクリプト内でのASMCMDコマンドの実行
#!/bin/sh for ((i = 1; i <=3; i++)) do asmcmd lsdsk -G data '/devices/diska'$i done $ ./asmcmd_test_script Path /devices/diska1 Path /devices/diska2 Path /devices/diska3