Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

コミット スクリプトのトラブルシューティング

コミット スクリプトを有効にし、コマンドを commit 発行すると、コミット スクリプトは直ちに有効になります。

表 1 は、発生する可能性のある一般的な問題を示しています。

表 1:コミット スクリプトのトラブルシューティング

問題

ソリューション

コマンドの出力は、 commit check | display detail 予想されるコミットスクリプトを参照しません。

階層レベルでそれぞれのスクリプトに対して ステートメントを file 含めることで、すべてのスクリプトを [edit system scripts commit] 有効にしていることを確認してください。

出力には、エラー メッセージが含まれています。

error: could not open commit script: 
/var/db/scripts/commit/filename:
No such file or directory

コミットスクリプトがスイッチ、ルーター、セキュリティデバイスの /var/db/scripts/commit/ directoryに存在することを確認します。

次のエラーと警告メッセージが表示されます。

error: invalid transient change 
generated by commit script: filename 
 warning: 1 transient change was generated 
without [system scripts commit allow-transients]

コミット スクリプトの 1 つに一時変更を生成する手順が含まれていますが、 一時的な変更は有効にしていません。

この問題を修正するには、次のいずれかのアクションを実行します。

  • 階層レベルに allow-transients ステートメントを [edit system scripts commit] 含めます。

  • 指定したスクリプトから一時的な変更を生成するコードを削除します。

  • 設定でスクリプトを無効にします。

予期されるアクションは発生しません。

例えば、コンフィギュレーションに警告メッセージを呼び出すはずの問題が含まれているにもかかわらず、警告メッセージは表示されません。

  1. スクリプトを有効にしていることを確認します。スクリプトが有効になっていない場合、スクリプトは無視されます。

    スクリプトを有効にするには、 階層レベルで file filename ステートメントを [edit system scripts commit] 含めます。

  1. スクリプトに必要な定型文が含まれていることを確認します。詳細については、「 コミット スクリプトに必要な定型プレート」を参照してください。

  1. スクリプト内の XPath(Extensible Markup Language Path)式に、Junos XML プロトコル タグ要素として表現された有効な Junos OS CLI(コマンドライン インターフェイス)ステートメントが含まれていることを確認します。

    Junos XML API 構成開発者リファレンスを参照するか、 運用モード コマンドを発行して、XML 階層をshow configuration | display xml検証できます。

  1. スクリプト内のプログラミング手順が正しい コンテキスト ノードを参照していることを確認します。

    ある命令を別の命令の中にネストすると、外部命令はコンテキスト・ノードを変更するので、内部命令は外部を基準とする必要があります。

    たとえば、命令には <xsl:for-each> 、コンテキスト ノードを変更する XPath 式が含まれています。そのため、ネストされた <xsl:if> 命令では、XPath式に対して相対的なXPath式を interfaces/interface[starts-with(name, 't1-')] 使用します。

    <xsl:for-each select="interfaces/
         interface[starts-with(name, 't1-')]">
    <xsl:if test="not(description)">

コミット操作は失敗し、システム ログ ファイルにエラー メッセージが表示されます。

Process (pid,cscript) attempted to exceed RLIMIT_DATA

1 つ以上のコミット スクリプトによって検査される構成をコミットする場合、大規模な構成の処理に対応するために、コミット スクリプトに割り当てられたメモリの量を増やす必要がある場合があります。

既定では、実行されたスクリプトのデータ セグメント部分に割り当てられるメモリの最大量は、システムの利用可能なメモリの合計の半分で、最大 128 MB です。実行されたコミット スクリプトごとに割り当てられる最大メモリを増やすには、設定を max-datasize size コミットする前に、 階層レベルで [edit system scripts commit] バイト単位で適切なメモリ制限を使用して ステートメントを設定します。