Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

例:Op スクリプトを使用したファイルのエクスポート

この例の op スクリプト は、Junos XML プロトコル file-put 操作を使用して、リモート サーバーとローカル デバイス上のファイルに書き込みます。

要件

この例では、Junos OSを実行しているデバイスを使用しています。

概要と運用スクリプト

Junos XML プロトコル file-put 操作は、ファイルを作成し、指定されたコンテンツをそのファイルに書き込みます。コマンドを使用 file-put するための基本的な構文は次のとおりです。

以下のタグ要素は、 コマンドで file-put 使用されます。これらのタグは、 を除き、任意の file-contents順序で配置できます。tag 要素は file-contents 、リストの最後のタグにする必要があります。

  • delete-if-exist—(オプション)含まれている場合、既存のファイルが上書きされます。タグを省略すると、既存のファイルが検出された場合にエラーが返されます。

  • encoding—(必須)使用するエンコーディングの種類を指定します。またはエンコーディングを使用ASCIIbase64できます。

  • filename—(必須)このタグ内では、作成するファイルの完全または相対パスとファイル名を含めます。相対パスを使用する場合、指定されたパスはユーザーのホーム ディレクトリに対する相対パスになります。指定されたディレクトリが存在しない場合、システムは「ディレクトリが存在しない」エラーを返します。

  • permission—(オプション)リモートサーバーでファイルのUNIXパーミッションを設定します。たとえば、ユーザーに読み取り/書き込みアクセス権を適用し、他のユーザーへの読み取りアクセスを適用するには、パーミッション値を0644に設定します。UNIX パーミッションの完全な説明については、 コマンドを chmod 参照してください。

  • file-contents—(必須)エクスポートするASCIIまたはbase64エンコードされたファイルコンテンツ。これは、リストの最後のタグにする必要があります。

XSLT 構文

以下のサンプル スクリプトは、Junos XML API リクエストを実行し、その結果をリモート デバイス上のファイルとローカル デバイスのファイルにエクスポートします。このスクリプトには、リモート デバイスの IP アドレスまたはホスト名、ファイル名、ファイル エンコードの 3 つの引数があります。引数の名前と説明がコマンドライン・インターフェース (CLI) に表示されるように、変数は arguments スクリプトのグローバル・レベルで宣言されます。

このスクリプトは、ローカル デバイスで Junos XML API <get-software-information> リクエストを呼び出し、その結果を result 変数に格納します。このスクリプトは、操作のfileputリモート プロシージャ コール(RPC)を含む変数をfile-put宣言します。コマンド ライン引数は、 および encoding タグ要素の値をfilename定義します。必須の引数myhostが欠落している場合、スクリプトはエラーを発行して実行を停止します。それ以外の場合、リモート デバイスへの接続に使用するユーザー名とパスワードを入力するよう求められます。

リモート デバイスへの接続が成功した場合、スクリプトは接続ハンドルのコンテキスト内で RPC を実行します。関数の file-put 結果である という操作の jcs:execute() 出力は、 変数に out 格納されます。という操作でエラーが発生した場合、スクリプトは CLI にエラーを出力します。操作が file-put 成功すると、tag 要素で file-contents 指定されたコンテンツがリモート デバイス上の指定されたファイルにエクスポートされます。その後、リモート・ホストへの接続は閉じられます。このスクリプトは、ローカル デバイス上の同一ファイルにコンテンツをエクスポートします。

サンプル スクリプトには、オプションのタグ要素 permissiondelete-if-exist という操作が file-put 含まれています。タグを delete-if-exist 含めることで、スクリプトはリモートホストとローカルホスト上の同じ名前の既存のファイルを上書きします。この例では、タグは permission に設定されています 0644

SLAX 構文

構成

手順

手順

スクリプトをダウンロード、有効化、テストするには、以下の手順にしたがっています。

  1. XSLT または SLAX スクリプトをテキスト ファイルにコピーし、必要に応じてファイル export.xsl または export.slax に名前を付け、デバイス上の /var/db/scripts/op/ ディレクトリにコピーします。

  2. 設定モードでは、 階層レベルで ステートメントを file 含め、必要に [edit system scripts op] 応じて export.xsl または export.slax を含めます。

  3. コマンドを commit and-quit 発行します。

  4. 運用モード コマンドを発行して op スクリプトを op export 実行し、必要な引数を含めます。

検証

Op スクリプトの引数の検証

目的

引数の名前と説明が CLI に表示されていることを確認します。

アクション

動作モード コマンドを op exort ? 発行します。CLI は、スクリプト内のグローバル arguments 変数内の定義に基づいて、スクリプト引数の補完候補をリストします。

Op スクリプト実行の検証

目的

スクリプトが想定どおりに動作していることを確認します。

アクション

動作モードコマンドを op export myhost host encoding encoding filename file 発行し、プロンプトが表示されたら、適切なユーザー名とパスワードを含めます。スクリプトの実行に成功すると、RPC リクエストの <get-software-information> 結果がリモート デバイスおよびローカル デバイス上のファイルに書き込まれます。例えば:

コマンドライン引数でリモートデバイスのIPアドレスまたはホスト名を指定できない場合、スクリプトはエラーを発行して実行を停止します。

操作の子タグfile-putdelete-if-exist省略し、指定されたファイルが既に存在する場合、スクリプトはエラーを報告します。

スクリプトを実行し、リモートホストまたはローカルホストに存在しないディレクトリパスを含む場合、スクリプトはエラーを報告します。