イベント スクリプトの有効化と実行
イベント スクリプトは、デバイスのハード ディスクの /var/db/scripts/event ディレクトリまたは /config/scripts/event ディレクトリのフラッシュ ドライブに保存されます。これらのディレクトリ内のファイルにアクセスおよび編集できるのは、Junos OS super-user
ログイン クラスのユーザーのみです。スクリプトの保存場所の設定については、「 Junos 自動化スクリプトの保存と有効化 」および「 フラッシュ メモリでのスクリプトの保存」を参照してください。
Junos OSを実行しているデバイスで不正なPythonコードが実行されないようにするには、符号なしPythonスクリプトがデバイス上でスクリプトを実行する前に特定の要件を満たす必要があります。Junos OSリリース16.1R3以降、署名されていないPythonスクリプトは、Junos OS super-user
ログインクラスのルートまたはユーザーのいずれかが所有する必要があり、ファイルの書き込み権限を持つことができるのはファイルの所有者のみです。Junos OS リリース 16.1R3 以前は、符号なし Python スクリプトは root ユーザーのみが所有する必要がありました。Junos OS を実行するデバイスで Python 自動化スクリプトを実行するための要件の詳細については、「 Junos デバイスで Python 自動化スクリプトを実行するための要件」を参照してください。
デバイスにデュアル ルーティング エンジンがあり、両方のルーティング エンジンでイベント スクリプトを実行できるようにしたい場合は、両方のルーティング エンジン上の /var/db/scripts/event または /config/scripts/event ディレクトリにスクリプトをコピーするか、 コマンドを発行 commit synchronize scripts
して設定を同期し、コミット操作の一環としてスクリプトを他のルーティング エンジンにコピーできます。
イベント スクリプトを実行するには、事前にイベント スクリプトを有効にする必要があります。イベントスクリプトを有効にするには、 階層レベルに ステートメントを[edit event-options events-script]
含file filename
め、イベントスクリプトを含むファイル名を指定します。イベント スクリプトを有効にできるのは、Junos super-user
ログイン クラスに属するユーザーのみです。
[edit event-options event-script] user@host# set file filename
SLAXスクリプトとPythonスクリプトには、実際のスクリプト名とファイル名の両方に、それぞれ .slax または .py ファイル名の拡張子を含める必要があります。XSLT スクリプトはファイル名拡張子を必要としませんが、 .xsl 拡張子を追加することを強くお勧めします。ファイルに .xsl 拡張子を含めるかどうかを選択するかどうかにかかわらず、階層レベルで [edit event-options event-script file]
追加するファイル名はディレクトリ内のスクリプトのファイル名と正確に一致する必要があります。たとえば、XSLT スクリプトファイル名が script1.xsl の場合、スクリプトを有効にするには、構成階層に script1.xsl を含める必要があります。同様に、XSLT スクリプトファイル名が script1 の場合、構成階層に script1 を含める必要があります。
デフォルトでは、Junos OSを実行するデバイスで符号なしPythonスクリプトを実行することはできません。Junos デバイスで Python 自動化スクリプトを実行するための要件で説明されている要件を満たす符号なし Python 自動化スクリプトの実行を有効にするには、 階層レベルで または language python3
ステートメントを[edit system scripts]
設定language python
する必要があります。
[edit system scripts] user@host# set language (python | python3)
デフォルトでは、Junos OS は、一般的で恵まれないユーザーおよびグループnobody
のアクセス権限を持つ Python イベント スクリプトを実行します。Junos OS リリース 16.1R3 以降、Python スクリプトが実行するアクセス権限を持つユーザーを指定できるようになりました。特定のユーザーのアクセス権限の下で Python イベント スクリプトを実行するには、 階層レベルで ステートメントを[edit event-options event-script file filename]
設定python-script-user username
します。
[edit event-options event-script file filename] user@host# set python-script-user username
ファイルのユーザーまたはグループクラスに属していないユーザーが符号なしPython自動化スクリプトを実行できるようにするには、スクリプトのファイル権限に他のユーザーの読み取り権限を含める必要があります。
デバイスで現在有効になっているイベント スクリプトを確認するには、 コマンドを show
使用して 階層レベルで設定されたファイルを [edit event-options event-script]
表示します。
[edit event-options event-script] user@host# show
有効なファイルがデバイス上に存在することを確認するには、 運用モードコマンドを使用して /var/run/scripts/event/ ディレクトリの内容を file list /var/run/scripts/event
リストします。
user@host> file list /var/run/scripts/event
コマンドを commit
発行すると、 階層レベルで [edit event-options event-script]
構成されたイベント スクリプトがシステム メモリに配置され、実行が有効になります。コミット操作が完了すると、イベント ポリシーはイベント通知に応答してイベント スクリプトを実行できます。
super-user
ログインクラスのルートまたはユーザーのいずれかが所有する必要があり、ファイルの書き込み権限を持つことができるのはファイルの所有者のみです。