キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
告知

JTAC-Mid-Career-Recruitment-2021.8

 

NSO: Scheduler について

419
閲覧回数
10
いいね!
0
コメント

  

はじめに

NSO scheduler は NSO 4.5.2 から追加されたアクションのスケジューリング機能です。

crontab ライクなアクションの定期実行や、指定した時間に1回だけ実行するアクションをスケジューリングすることができます。

 

定期的に実施するアクション

定期的なアクションのスケジューリングでは、アクションの実行タイミング(scheduler)と、アクションの対象(action-node)、実行するアクション(action-name)を設定します。幾つか設定例を記載します。

  • いつ(schedule):毎月1日の午前2時
    対象(action-node):全てのデバイス
    アクション(action-name):check-sync
scheduler task periodic-check-sync
schedule "0 2 1 * *"
action-node /devices
action-name check-sync

 

  • いつ(schedule):毎週日曜日の午前4時30分
    対象(action-node):全てのデバイス
    アクション(action-name):NEDトレースファイルをリフレッシュ
scheduler task periodic-clear-trace
schedule "30 4 * * 0"
action-node /devices
action-name clear-trace

  

各設定コマンドについて説明します。

 

schedule

アクションの実行タイミングを crontab と同様のフォーマットで指定します。

フィールドの順番は以下のとおりです。

---------- minute (0 - 59)
| ---------- hour (0 - 23)
| | ---------- day of month (1 - 31)
| | | ---------- month (1 - 12)
| | | | ---------- day of week (0 - 6) (Sunday to Saturday)
| | | | |
* * * * *

 

各フィールドに指定可能な値は以下の通りです。

Field Allowed Values Allowed Special Characters
Minutes 0 - 59 * , - /
Hours 0 - 23 * , - /
Day of month 1 - 31 * , - /
Month 1 - 12 or JAN-DEC * , - /
Day of week 0 - 6 or SUN-SAT * , - /

 

  • アスタリスク( ) は全ての値を意味します。
    (例) 毎分は、Minutes に * を設定します。
  • カンマ( ) は複数の値を列挙するときに使います。
    (例) 月・水・金は、Day of Week に MON,WED,FRI を設定します。
  • ハイフン( - ) は値の範囲を指定するときに使います。
    (例) 毎月1~5日は、Day of month に 1-5 を設定します。
  • スラッシュ( / ) は間隔を指定するときに使います。
    (例) 5分毎は、Minutes に */5 を設定します。

 

action-node

アクションを実行する対象となるノードを指定します。

設定可能な action-node は以下のとおりです。

admin@ncs(config)# scheduler task test action-node ?
Possible completions:
aaa alarms alias cluster compliance
customers devices java-vm nacm policy
python-vm scheduler services smart-license snmp
snmp-notification-receiver software ssh user webui

 

以下のように XPathを使って対象のノードを絞りこむこともできます。

scheduler task periodic-sync-from action-node /devices/device-group[name='ios']

 

action-name

実行するアクションを指定します。 設定した action-node に付随するアクションを設定することができます。

 

action-params

オプションでアクションに渡すパラメータを設定することができます。 パラメータのフォーマットは XMLです。

 

( 例 ) ステータスが cleared で 3日以上前のアラームを定期的に削除

scheduler task periodic-purge-alarms
schedule "* 0 * * *"
action-node /alarms
action-name purge-alarms
action-params <alarm-status>cleared</alarm-status><older-than><days>3</days></older-than>

 

1回だけ実施するアクション

1回だけ実施するアクションのスケジューリングでは、scheduler のかわりに time コマンドを使います。その他は定期的なアクションの設定と同様です。

 

  • いつ(time):2018年1月24日の12時30分
    対象(action-node):全てのデバイス( パラメータを使って対象デバイスを限定 ) 
    アクション(action-name):sync-from
    パラメータ(action-params):ios1 と ios2
scheduler task onetime-sync-from
time 2018-01-24T12:30:00
keep
action-node /devices
action-name sync-from
action-params <device>ios1</device><device>ios2</device>

 

各設定コマンドについて説明します。

 

time

アクションを実行する日時を YYYY-MM-DDTHH:MM:SS 形式で設定します。

 

keep

ワンタイムのタスクは、実行終了後にコンフィグから削除されます。
実行終了後もコンフィグを残しておきたい場合は keep オプションを設定してください。

 

Scheduler のトラブルシューティング

 

Scheduler のトラブルシューティングに有用なコマンドを紹介します。

 

show scheduler

過去の実行結果を表示します。

admin@ncs# show scheduler
scheduler suspended false
                       IS
NAME                   RUNNING  WHEN                              DURATION  SUCCEEDED  INFO
---------------------------------------------------------------------------------------------
misconfig              false    2018-01-24T04:26:00.525777+00:00  0.002     false      Error when parsing params...
periodic-check-sync    false    2018-01-24T04:08:00.452076+00:00  2.244     true       -

 

scheduler task [name] get-next-run-times

次の実行タイミングを表示します。

admin@ncs# scheduler task periodic-check-sync get-next-run-times
next-run-time [ "2018-02-01 02:00:00" "2018-03-01 02:00:00" "2018-04-01 02:00:00" "2018-05-01 02:00:00" "2018-06-01 02:00:00" ]

 

suspend / resume

スケジューラは以下のコマンドで一時的に停止することができます。

admin@ncs# scheduler suspend

 

以下のコマンドで再開することができます。

admin@ncs# scheduler resume

 

ログファイル

スケジューラに関するログは主に devel.log、xpath.trace に出力されます。

 

リファレンス