コンフィグレーションガイド Vol.1


19.2.6 スクリプトの起動

作成したスクリプトを,コマンドスクリプト,常駐スクリプト,またはイベント起動スクリプトとして起動します。

〈この項の構成〉

(1) コマンドスクリプトの起動

スクリプトファイル名を指定して運用コマンドpythonを実行すると,コマンドスクリプトが起動します。

図19‒9 pythonコマンドの実行例(スクリプトの起動)
# python sample.py                                …1
  1. sample.pyファイルを起動します。

また,次の図に示すように,インストールしたスクリプトをモジュールとして起動できます。

図19‒10 pythonコマンドの実行例(モジュールの起動)
# install script sample.py                        …1
# python -m sample                                …2
  1. sample.pyファイルを本装置にインストールします。

  2. sample.pyファイルをモジュールとして起動します。モジュールとして起動する場合は,拡張子を省略します。

(2) 常駐スクリプトの起動

常駐スクリプトを起動するには,次の二つの設定が必要です。

両登録の完了を契機として,常駐スクリプトが起動します。常駐スクリプトの設定例を次の図に示します。

図19‒11 常駐スクリプトの設定例
# install script sample.py                        …1
# configure
(config)# resident-script 1 python sample.py      …2
(config)# 
  1. sample.pyファイルを本装置にインストールします。

  2. sample.pyファイルを常駐スクリプトのスクリプトID 1に登録します。登録を契機として,sample.pyが起動します。

(3) イベント起動スクリプトの起動

イベント起動スクリプトを起動するには,次の三つの設定が必要です。

これらの登録後,監視イベントの検出を契機として,イベント起動スクリプトが起動します。

監視イベントをタイマ監視とする場合の,イベント起動スクリプトの設定例を次の図に示します。

図19‒12 イベント起動スクリプトの設定例(タイマ監視)
# install script sample.py                        …1
# configure
(config)# event manager applet INTERVAL100s       …2
(config-applet)# event timer interval 100         …3
(config-applet)# action 1 python sample.py        …4
(config-applet)# 
  1. sample.pyファイルを本装置にインストールします。

  2. アプレット名がINTERVAL100sのアプレットを作成して,アプレットのコンフィグレーションモードに移行します。

  3. 100秒周期でイベントを発生させる,タイマ監視を登録します。

  4. sample.pyファイルをアクションのシーケンス番号1に登録します。登録を契機として,100秒周期でsample.pyが起動します。

監視イベントを運用メッセージ監視とする場合の,イベント起動スクリプトの設定例を次の図に示します。

図19‒13 イベント起動スクリプトの設定例(運用メッセージ監視)
# install script sample.py                        …1
# configure
(config)# event manager applet PORT_UP            …2
(config-applet)# event sysmsg message-id 25011001 …3
(config-applet)# action 1 python sample.py        …4
(config-applet)# 
07/07 12:00:00 01S E4 PORT GigabitEthernet1/0/1 25011001 1350:000000000000 Port up.
                                                  …5
(config-applet)# 
  1. sample.pyファイルを本装置にインストールします。

  2. アプレット名がPORT_UPのアプレットを作成して,アプレットのコンフィグレーションモードに移行します。

  3. メッセージ識別子が25011001の運用メッセージ出力を監視する,運用メッセージ監視を登録します。

  4. sample.pyファイルをアクションのシーケンス番号1に登録します。

  5. 監視条件(メッセージ識別子25011001)に該当する運用メッセージの出力を契機として,sample.pyが起動します。

(4) 起動スクリプトのPID確認

起動したスクリプトには,OSによってPID(Process ID)と呼ばれる識別子が割り当てられます。同じスクリプトを複数起動した場合でも,それぞれを区別するために異なるPIDが割り当てられます。

各スクリプトに割り当てられたPIDは,運用コマンドshow script running-stateで確認できます。複数の端末から同じスクリプトを起動した場合のPID表示例を次の図に示します。

図19‒14 起動スクリプトのPID確認
# show script running-state                       …1
Date 20XX/02/05 18:17:40 UTC
 
[operation command]                               …2
  command line args: python sample.py
  PID: 2213
  start time: 20XX/02/05 18:17:24 UTC
 
  command line args: python sample.py
  PID: 1968
  start time: 20XX/02/05 18:17:26 UTC
 
[applet]                                          …3
  applet name: INTERVAL100s
  action sequence: 1
  command line args: python sample.py
  PID: 11700
  start time: 20XX/02/05 18:17:38 UTC
 
[resident]                                        …4
  script id: 1
  command line args: python sample.py
  state: Running
  PID: 1977
  start time: 20XX/02/05 18:17:29 UTC
# 
  1. 現在起動中のスクリプトを表示します。

  2. コマンドスクリプトとして起動しているスクリプトが確認できます。

    この例では,PIDが2213と1968のスクリプトが起動中であることを確認できます。

  3. イベント起動スクリプトとして起動しているスクリプトが確認できます。

    この例では,PIDが11700のスクリプトが起動中であることを確認できます。

  4. 常駐スクリプトとして起動しているスクリプトが確認できます。

    この例では,PIDが1977のスクリプトが起動中であることを確認できます。