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

 Dec.2020_TopBanner.JPG

NX-OS Programmability : Scheduler 機能と Python スクリプトの組み合わせ例

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

 

 

はじめに

本ドキュメントは、Nexus 機器の bootflash もしくは volatile 配下に Python スクリプトを配置して、それを Scheduler 機能で定期的に実施するサンプルコードを紹介します。

なお、本ドキュメントは、N9K-C93240YC-FX2 / NXOS-9.3(7) で検証しています。

 

Scheduler 機能

Scheduler とは、Unix における cron と似たものであり、特定のコマンドを定期的に発行するといったことが可能です。
詳細に関しては、弊社ドキュメントもしくは、以下の community ページをご参考ください。
Cisco Nexus シリーズ : Scheduler 機能 

 

Python スクリプト

NXOS では、非インタラクティブモードで、自作した Python スクリプトを動かすことができ、Python スクリプトは、複数の方法(手動・EEM・Scheduler 機能)で実行することができます。詳細に関しては、弊社ドキュメントもしくは、以下の community ページをご参考ください。
NX-OS Programmability : Python スクリプトについて 

 

Scheduler 機能と Python スクリプトの組み合わせ

Scheduler と Python スクリプトを組み合わせることで、定期的に Python スクリプトを実行することができます。

# python3 : switchname.py
#!/bin/env python3
from cli import *
from nxos import *
import os
 
switchname = cli("show switchname")
try:
    user = os.environ['USER']
except:
    user = "No user"
    pass
 
msg = user + " ran " + __file__ + " on : " + switchname
print(msg)
py_syslog(1, msg)
 
上記の switchname.py を bootflash:///scripts 配下に保存します。その後、scheduler を設定します。
N9K-C93240YC-FX2(config)# feature scheduler
N9K-C93240YC-FX2(config)# scheduler job name job_switchname
N9K-C93240YC-FX2(config-job)# python bootflash:///scripts/switchname.py
N9K-C93240YC-FX2(config-job)# exit
N9K-C93240YC-FX2(config)# scheduler schedule name job_switchname
N9K-C93240YC-FX2(config-schedule)# job name job_switchname
N9K-C93240YC-FX2(config-schedule)# time start now repeat 0:0:4  <<< 4 分毎に実施するように設定
Schedule starts from Wed Jul 21 14:32:34 2021
N9K-C93240YC-FX2(config-schedule)#

 

4分毎に以下のログが確認できます。

show logging log | last
2021 Jul 21 14:32:37 N9K-C93240YC-FX2 %USER-1-SYSTEM_MSG: No user ran /bootflash/scripts/switchname.py on : N9K-C93240YC-F
X2 - nxpython
2021 Jul 21 14:36:36 N9K-C93240YC-FX2 %USER-1-SYSTEM_MSG: No user ran /bootflash/scripts/switchname.py on : N9K-C93240YC-F
X2 - nxpython (message repeated 1 time)
2021 Jul 21 14:40:37 N9K-C93240YC-FX2 %USER-1-SYSTEM_MSG: No user ran /bootflash/scripts/switchname.py on : N9K-C93240YC-F
X2 - nxpython (message repeated 1 time)
2021 Jul 21 14:44:37 N9K-C93240YC-FX2 %USER-1-SYSTEM_MSG: No user ran /bootflash/scripts/switchname.py on : N9K-C93240YC-F
X2 - nxpython (message repeated 1 time)

この Scheduler と Python スクリプトを組み合わせることで N9K-C93240YC-FX2 という switchname が表示されていることが確認できます。あくまでこれらは、サンプルコードとなりますが、Scheduler と Python スクリプトを組み合わせで定期的に実施ことができることが分かります。

 

参考情報

Cisco Nexus 9000 Series NX-OS Programmability Guide, Release 9.3(x) 
Cisco Nexus スイッチ (NX-OS) : 設定例