手当たり次第に書くんだ

飽きっぽいのは本能

Cisco KRON の使い方 – IOS で定期コマンドを実行する基本と注意点

Cisco KRON は、Cisco IOS で EXEC コマンドを定期実行するための簡易スケジューラーです。名前は Linux の cron に似ていますが、同じものではありません。IOS ルーターやスイッチの中で、決まった時刻や一定間隔でコマンドを実行したい場合に使う機能です。

ただし、KRON は運用自動化の万能機能ではありません。条件分岐、イベント連動、複雑なログ解析、外部システムとの連携まで担わせるものではなく、機器単体で完結する軽い定期実行に向いています。Cisco IOS で「定期的にコマンドを実行したい」ときの選択肢として、KRON で足りるのか、EEM や外部自動化に寄せるべきなのかを分けて考えることが大切です。

観点KRON の考え方
用途時刻や間隔を起点にした単純な EXEC コマンド実行
主な設定kron policy-listkron occurrence
向いていることwrite memory など、機器単体で完結する軽い定期処理
向いていないこと条件分岐、イベント連動、複雑な自動復旧、外部連携
比較対象イベント駆動なら EEM、全体運用なら Ansible などの外部自動化
参考
書籍
参考書籍

マスタリング TCP/IP 入門編 第 6 版

Cisco IOS の設定だけでなく、ネットワークの基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

KRON は IOS の簡易スケジューラーである

KRON は、Cisco IOS 上であらかじめ定義した EXEC コマンドを実行する機能です。設定コマンドそのものは難しくありません。実行する内容を kron policy-list に書き、実行タイミングを kron occurrence で指定します。

重要なのは、KRON を「機器内 cron」と雑に理解しすぎないことです。Linux の cron はシェルスクリプトや OS 上のファイル操作と組み合わせて使われますが、KRON が実行するのは IOS の EXEC コマンドです。機器の状態、権限、保存先、出力の扱いも IOS の制約の中で考える必要があります。

policy-list と occurrence の関係

KRON の基本構造は、実行内容と実行タイミングを分けることです。kron policy-list は「何を実行するか」を定義し、kron occurrence は「いつ実行するか」と「どの policy-list を呼ぶか」を定義します。

設定役割
kron policy-list実行する EXEC コマンドをまとめる
clipolicy-list の中で実行する IOS コマンドを指定する
kron occurrence実行時刻、実行間隔、繰り返し有無を指定する
policy-listoccurrence から呼び出す policy-list を指定する

この分離を理解しておくと、設定を読んだときに「何を実行する設定なのか」と「いつ実行される設定なのか」を切り分けやすくなります。

定期的に write memory を実行する例

次は、write memory を毎日 3:00 に実行する例です。実運用で設定保存を自動化するべきかは別問題ですが、KRON の構造を見る例として分かりやすい設定です。

kron policy-list SAVE_CONFIG
 cli write memory

kron occurrence SAVE_CONFIG_DAILY at 3:00 recurring
 policy-list SAVE_CONFIG

SAVE_CONFIG という policy-list に write memory を登録し、SAVE_CONFIG_DAILY という occurrence から毎日 3:00 に呼び出しています。KRON では、policy-list 名と occurrence 名を分けておくと、設定の意図を読み取りやすくなります。

一定間隔でコマンドを実行する例

一定間隔で実行したい場合は、inrecurring を使います。次の例では、60 分ごとに show clock を実行します。

kron policy-list SHOW_CLOCK
 cli show clock

kron occurrence SHOW_CLOCK_EVERY_60 in 60 recurring
 policy-list SHOW_CLOCK

ただし、show コマンドを定期実行するだけでは、運用上の価値は限定的です。実行結果をどこで見るのか、ログとして残るのか、監視や記録に接続できるのかを考えないと、単にコマンドが実行されるだけで終わります。

KRON の状態を確認する

KRON を設定したら、running-config 上の設定と、スケジュールの状態を確認します。

show running-config | section kron
show kron schedule

確認すべきなのは、policy-list と occurrence の紐付け、次回実行時刻、recurring の有無です。設定を入れたつもりでも、実行タイミングや参照する policy-list がずれていれば、期待した動作にはなりません。

KRON と EEM の違い

KRON と混同しやすい機能に EEM があります。KRON は時刻や間隔を起点にした実行が中心です。一方、EEM は syslog、SNMP、interface 状態、timer などのイベントを契機にアクションを実行できます。

観点KRONEEM
起点時刻、間隔、起動後syslog、SNMP、interface、timer などのイベント
用途単純な定期実行条件に応じた自動処理
複雑さ比較的単純条件やアクションを設計できる
向く場面軽い保守用コマンド、定期保存障害検知後の処理、ログ反応、状態変化への対応

「毎日 3:00 にコマンドを打つ」なら KRON で足りるかもしれません。「特定のログが出たら経路を切り替える」「インターフェースが落ちたら通知する」のような処理は、KRON より EEM の領域です。

KRON を使う時の注意点

KRON は便利ですが、ネットワーク機器の中で自動的にコマンドを実行する機能です。設定を間違えると、意図しない時刻に設定保存、通信断、負荷増加、ログの増加を起こす可能性があります。

確認したいこと:

  • 通信断や設定変更を伴うコマンドを KRON で実行していないか
  • 実行結果を確認する方法があるか
  • 設定変更を自動化する場合、バックアウト手段があるか
  • 機器再起動後にも意図したスケジュールになるか
  • KRON ではなく EEM や外部自動化で扱うべき処理ではないか

特に、破壊的なコマンドや通信断を起こすコマンドを KRON に入れるのは慎重に考えるべきです。人が CLI で実行するなら事前確認できますが、KRON は時刻になれば実行します。自動化は手作業を減らしますが、同時に失敗も自動化します。

使いどころは小さく考える

KRON は、ネットワーク運用の中心に置く機能というより、機器単体で完結する小さな補助機能として見る方が自然です。大規模な運用では、設定管理、監視、ジョブ実行、変更履歴、承認、復旧手順を外部の運用基盤側で管理することが多くなります。

それでも、外部基盤を使うほどではない軽い定期処理や、検証環境での確認には KRON が役立つことがあります。重要なのは、KRON を知っていることではなく、KRON で済ませてよい処理と、KRON に任せるべきではない処理を分けられることです。

まとめ

Cisco KRON は、Cisco IOS 上で EXEC コマンドを定期実行するための簡易スケジューラーです。kron policy-list で実行内容を定義し、kron occurrence で実行タイミングを指定します。

時刻ベースの単純な定期実行なら KRON で足りる場合があります。一方で、イベント連動なら EEM、複雑な運用自動化なら Ansible などの外部基盤を使う方が自然です。KRON は便利な機能ですが、運用設計なしに使うものではありません。何を自動化し、何を自動化しないのかを決めたうえで、小さく使うのがよいと思います。

関連する記事

あわせて読みたい:

Cisco KRON の使い方 – IOS で定期コマンドを実行する基本と注意点

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る