スケジューラの設定

この章は、次の内容で構成されています。

スケジューラの概要

スケジューラを使用すると、次のようなメンテナンス作業のタイムテーブルを定義し、設定することができます。

  • QoS(Quality of Service)ポリシーの変更

  • データのバックアップ

  • 設定の保存

ジョブは、定期的な作業を定義する単一または複数のコマンドで構成されています。ジョブは、1 回だけ、または定期的な間隔でスケジューリングすることができます。

スケジューラでは、ジョブと、そのタイムテーブルを次のように定義できます。

ジョブ

コマンド リストとして定義され、指定されたスケジュールに従って実行される定期的なタスク。

スケジュール

ジョブを実行するためのタイムテーブル。1 つのスケジュールに複数のジョブを割り当てることができます。

1 つのスケジュールは、定期的、または 1 回だけ実行するように定義されます。

  • 定期モード:ジョブを削除するまで続行される繰り返しの間隔。次のタイプの定期的な間隔を設定できます。

    • Daily:ジョブは 1 日 1 回実行されます。

    • Weekly:ジョブは毎週 1 回実行されます。

    • Monthly:ジョブは毎月 1 回実行されます。

    • Delta:ジョブは、指定した時間に開始され、以後、指定した間隔(days:hours:minutes)で実行されます。

  • 1 回限定モード:ジョブは、指定した時間に 1 回だけ実行されます。

リモート ユーザ認証

ジョブの開始前に、スケジューラはジョブを作成したユーザーを認証します。リモート認証からのユーザー クレデンシャルは、スケジュールされたジョブをサポートできるだけの十分に長い時間保持されないため、ジョブを作成するユーザーの認証パスワードをローカルで設定する必要があります。これらのパスワードは、スケジューラのコンフィギュレーションに含まれ、ローカル設定のユーザとは見なされません。

ジョブを開始する前に、スケジューラはローカル パスワードとリモート認証サーバに保存されたパスワードを照合します。

スケジューラ ログ ファイル

スケジューラは、ジョブ出力を含むログ ファイルを管理します。ジョブ出力のサイズがログ ファイルのサイズより大きい場合、出力内容は切り捨てられます。

スケジューラの注意事項および制約事項

  • ジョブの実行中に次のいずれかの状況が発生した場合、スケジューラは失敗する可能性があります。

    • 機能ライセンスが、その機能のジョブがスケジュールされている時間に期限切れになった場合。

    • 機能が、その機能を使用するジョブがスケジューリングされている時間にディセーブルになっている場合。

  • 時刻が設定されていることを確認します。スケジューラはデフォルトのタイムテーブルを適用しません。スケジュールを作成し、ジョブを割り当てても、時刻を設定しなければ、ジョブは開始されません。

  • ジョブは開始されると非インタラクティブ方式で実行されるため、ジョブの定義中、インタラクティブなコマンドや中断を伴うコマンド(例:copy bootflash: file ftp:URIwrite erase 、その他類似のコマンド)が指定されていないことを確認してください。

スケジューラのデフォルト設定

表 1. コマンド スケジューラのパラメータのデフォルト
パラメータ デフォルト

スケジューラの状態

ディセーブル

ログ ファイル サイズ

16 KB

スケジューラの設定

スケジューラのイネーブル化

手順の概要

  1. switch# configure terminal
  2. switch(config) # feature scheduler
  3. (任意) switch(config) # show scheduler config
  4. (任意) switch(config)# copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # feature scheduler

スケジューラをイネーブルにします。

ステップ 3

(任意) switch(config) # show scheduler config

(任意)

スケジューラ設定を表示します。

ステップ 4

(任意) switch(config)# copy running-config startup-config

(任意)

リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。

次に、スケジューラをイネーブルにする例を示します。

switch# configure terminal
switch(config)# feature scheduler
switch(config)# show scheduler config
config terminal
   feature scheduler
   scheduler logfile size 16
end
switch(config)#

スケジューラ ログ ファイル サイズの定義

手順の概要

  1. switch# configure terminal
  2. switch(config) # scheduler logfile size value
  3. (任意) switch(config)# copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # scheduler logfile size value

スケジューラ ログ ファイル サイズをキロバイト(KB)で定義します。

範囲は 16 ~ 1024 です。デフォルトのログ ファイル サイズは 16 です。

(注)   

ジョブ出力のサイズがログ ファイルのサイズより大きい場合、出力内容は切り捨てられます。

ステップ 3

(任意) switch(config)# copy running-config startup-config

(任意)

リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。

次に、スケジューラ ログ ファイルのサイズを定義する例を示します。

switch# configure terminal
switch(config)# scheduler logfile size 1024
switch(config)#

リモート ユーザ認証の設定

リモート ユーザーは、ジョブを作成および設定する前に、クリア テキスト パスワードを使用して認証する必要があります。

show running-config コマンドの出力では、リモート ユーザー パスワードは常に暗号化された状態で表示されます。コマンドの暗号化オプション(7)は、ASCII デバイス設定をサポートします。

手順の概要

  1. switch# configure terminal
  2. switch(config) # scheduler aaa-authentication password [0 | 7] password
  3. switch(config) # scheduler aaa-authentication username name password [0 | 7] password
  4. (任意) switch(config) # show running-config | include "scheduler aaa-authentication"
  5. (任意) switch(config)# copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # scheduler aaa-authentication password [0 | 7] password

現在ログインしているユーザーのパスワードを設定します。

クリア テキスト パスワードを設定するには、0 を入力します。

暗号化されたパスワードを設定するには、7 を入力します。

ステップ 3

switch(config) # scheduler aaa-authentication username name password [0 | 7] password

リモート ユーザーのクリア テキスト パスワードを設定します。

ステップ 4

(任意) switch(config) # show running-config | include "scheduler aaa-authentication"

(任意)

スケジューラのパスワード情報を表示します。

ステップ 5

(任意) switch(config)# copy running-config startup-config

(任意)

リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。

次に、NewUser という名前のリモート ユーザーのクリア テキスト パスワードを設定する例を示します。

switch# configure terminal
switch(config) # scheduler aaa-authentication 
username NewUser password z98y76x54b
switch(config) # copy running-config startup-config
switch(config) #

ジョブの定義

一旦ジョブを定義すると、コマンドの変更、削除はできません。ジョブを変更するには、そのジョブを削除して新しいジョブを作成する必要があります。

手順の概要

  1. switch# configure terminal
  2. switch(config) # scheduler job name name
  3. switch(config-job) # command1 ; [command2 ;command3 ; ...
  4. (任意) switch(config-job) # show scheduler job [name]
  5. (任意) switch(config-job) # copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # scheduler job name name

ジョブを指定された名前で作成し、ジョブ構成モードを開始します。

name は 31 文字までに制限されています。

ステップ 3

switch(config-job) # command1 ; [command2 ;command3 ; ...

特定のジョブに対応するコマンド シーケンスを定義します。複数のコマンドは、スペースとセミコロンで(;)で区切る必要があります。

ファイル名は現在のタイムスタンプとスイッチ名を使用して作成します。

ステップ 4

(任意) switch(config-job) # show scheduler job [name]

(任意)

ジョブ情報を表示します。

name は 31 文字までに制限されています。

ステップ 5

(任意) switch(config-job) # copy running-config startup-config

(任意)

リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。

次の例は、次の方法を示します。

  • 「backup-cfg」という名前のスケジューラ ジョブを作成示します。

  • 実行中の構成をブートフラッシュ上のファイルに保存します。

  • ファイルをブートフラッシュから TFTP サーバーにコピーします。

  • 変更がスタートアップ構成に保存されます。

switch# configure terminal
switch(config) # scheduler job name backup-cfg
switch(config-job) # copy running-config 
tftp://1.2.3.4/$(SWITCHNAME)-cfg.$(TIMESTAMP) vrf management
switch(config-job) # copy running-config startup-config

ジョブの削除

手順の概要

  1. switch# configure terminal
  2. switch(config) # no scheduler job name name
  3. (任意) switch(config-job) # show scheduler job [name]
  4. (任意) switch(config-job) # copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # no scheduler job name name

特定のジョブおよびそこで定義されたすべてのコマンドを削除します。

name は 31 文字までに制限されています。

ステップ 3

(任意) switch(config-job) # show scheduler job [name]

(任意)

ジョブ情報を表示します。

ステップ 4

(任意) switch(config-job) # copy running-config startup-config

(任意)

リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。

次に、configsave という名前のジョブを削除する例を示します。

switch# configure terminal
switch(config)# no scheduler job name configsave
switch(config-job)# copy running-config startup-config
switch(config-job)# 

タイムテーブルの定義

タイムテーブルを設定する必要があります。設定しないと、ジョブがスケジューリングされません。

time コマンドで時刻を設定しない場合は、スケジューラは現在の時刻を使用します。たとえば、現在の時刻が 2008 年 3 月 24 日の 22 時 00 分である場合、ジョブは次のように開始されます。

  • スケジューラは、time start 23:00 repeat 4:00:00 コマンドの開始時刻が、2008 年 3 月 24 日 23 時 00 分であると見なします。

  • スケジューラは、time daily 55 コマンドの開始時刻が、毎日 22 時 55 分であると見なします。

  • スケジューラは、time weekly 23:00 コマンドの開始時刻が、毎週金曜日の 23 時 00 分であると見なします。

  • スケジューラは、time monthly 23:00 コマンドの開始時刻が、毎月 24 日の 23 時 00 分であると見なします。


(注)  

スケジューラは、1 つ前のジョブが完了しない限り、次のジョブを開始しません。たとえば、1 分間隔で実行するジョブを 22 時 00 分に開始するようジョブをスケジューリングしたが、ジョブを完了するには 2 分間必要である場合、ジョブは次のように実行されます。スケジューラは 22 時 00 分に最初のジョブを開始し、22 時 02 分に完了します。次に 1 分間待機し、22 時 03 分に次のジョブを開始します。


手順の概要

  1. switch# configure terminal
  2. switch(config) # scheduler schedule name name
  3. switch(config-schedule) # job name name
  4. switch(config-schedule) # time daily time
  5. switch(config-schedule) # time weekly [[day-of-week:] HH:] MM
  6. switch(config-schedule) # time monthly [[day-of-month:] HH:] MM
  7. switch(config-schedule) # time start { now repeat repeat-interval | delta-time [ repeat repeat-interval]}
  8. (任意) switch(config-schedule) # show scheduler config
  9. (任意) switch(config-schedule) # copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # scheduler schedule name name

新しいスケジューラを作成し、そのスケジュールのスケジュール コンフィギュレーション モードを開始します。

name は 31 文字までに制限されています。

ステップ 3

switch(config-schedule) # job name name

このスケジュールにジョブを関連付けます。1 つのスケジュールに複数のジョブを追加できます。

name は 31 文字までに制限されています。

ステップ 4

switch(config-schedule) # time daily time

ジョブが毎日 HH:MM の形式で指定された時刻に開始することを意味します。

ステップ 5

switch(config-schedule) # time weekly [[day-of-week:] HH:] MM

ジョブが週の指定された曜日に開始することを意味します。

曜日は整数(たとえば、日曜日は 1、月曜日は 2)または略語(たとえば、sun mon)で表します。

引数全体の最大長は 10 文字です。

ステップ 6

switch(config-schedule) # time monthly [[day-of-month:] HH:] MM

ジョブが月の特定の日に開始することを意味します。

29、30 または 31 のいずれかを指定した場合、そのジョブは各月の最終日に開始されます。

ステップ 7

switch(config-schedule) # time start { now repeat repeat-interval | delta-time [ repeat repeat-interval]}

ジョブが定期的に開始することを意味します。

start-time の形式は [[[[yyyy:]mmm:]dd:]HH]:MM です。

  • delta-time:スケジュールの設定後、ジョブの開始までの待機時間を指定します。

  • now:ジョブが今から 2 分後に開始することを指定します。

  • repeat repeat-interval:ジョブを反復する回数を指定します。

ステップ 8

(任意) switch(config-schedule) # show scheduler config

(任意)

スケジューラの情報を表示します。

ステップ 9

(任意) switch(config-schedule) # copy running-config startup-config

(任意)

リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。

次に、ジョブが毎月 28 日の 23 時 00 分に開始するタイムテーブルを定義する例を示します。

switch# configure terminal
switch(config)# scheduler schedule name weekendbackupqos
switch(config-scheduler)# job name offpeakzoning
switch(config-scheduler)# time monthly 28:23:00
switch(config-scheduler)# copy running-config startup-config
switch(config-scheduler)# 

スケジューラ ログ ファイルの消去

手順の概要

  1. switch# configure terminal
  2. switch(config) # clear scheduler logfile

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # clear scheduler logfile

スケジューラ ログ ファイルを消去します。

次に、スケジューラ ログ ファイルを消去する例を示します。

switch# configure terminal
switch(config)# clear scheduler logfile

スケジューラのディセーブル化

手順の概要

  1. switch# configure terminal
  2. switch(config) # no feature scheduler
  3. (任意) switch(config) # show scheduler config
  4. (任意) switch(config)# copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的
ステップ 1

switch# configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

switch(config) # no feature scheduler

スケジューラをディセーブルにします。

ステップ 3

(任意) switch(config) # show scheduler config

(任意)

スケジューラ設定を表示します。

ステップ 4

(任意) switch(config)# copy running-config startup-config

(任意)

リブートおよびリスタート時に実行コンフィギュレーションをスタートアップ コンフィギュレーションにコピーして、変更を継続的に保存します。

次に、スケジューラをディセーブルにする例を示します。

switch# configure terminal
switch(config) # no feature scheduler
switch(config) # copy running-config startup-config
switch(config) # 

スケジューラの設定確認

次のいずれかのコマンドを使用して、設定を確認します。

表 2. スケジューラの show コマンド
コマンド 目的
show scheduler config

スケジューラ設定を表示します。

show scheduler job [name name]

設定されているジョブを表示します。

show scheduler logfile

スケジューラ ログ ファイルの内容を表示します。

show scheduler schedule [name name]

設定されているスケジュールを表示します。

スケジューラの設定例

スケジューラ ジョブの作成

この例では、実行コンフィギュレーションをブートフラッシュ内のファイルに保存するスケジュール ジョブを作成する方法を示します。このジョブは、その後で、ブートフラッシュから TFTP サーバにファイルをコピーします(現在のタイムスタンプとスイッチ名を使用してファイル名を作成します)。

switch# configure terminal
switch(config)# scheduler job name backup-cfg
switch(config-job)# copy running-config 
tftp://1.2.3.4/$(SWITCHNAME)-cfg.$(TIMESTAMP) vrf management
switch(config-job)# end
switch(config)# 

スケジューラ ジョブのスケジューリング

次に、backup-cfg という名前のスケジューラ ジョブを、毎日午前 1 時に実行するようスケジューリングする例を示します。

switch# configure terminal
switch(config)# scheduler schedule name daily
switch(config-schedule)# job name backup-cfg
switch(config-schedule)# time daily 1:00
switch(config-schedule)# end
switch(config)# 

ジョブ スケジュールの表示

次に、ジョブ スケジュールを表示する例を示します。

switch# show scheduler schedule
Schedule Name       : daily
---------------------------
User Name           : admin
Schedule Type       : Run every day at 1 Hrs 00 Mins
Last Execution Time : Fri Jan 2 1:00:00 2009
Last Completion Time: Fri Jan 2 1:00:01 2009
Execution count     : 2
-----------------------------------------------
     Job Name            Last Execution Status
-----------------------------------------------
back-cfg                          Success (0)
switch(config)# 

スケジューラ ジョブの実行結果の表示

次に、スケジューラによって実行されたスケジューラ ジョブの結果を表示する例を示します。

switch# show scheduler logfile
Job Name       : back-cfg                          Job Status: Failed (1)
Schedule Name  : daily                             User Name : admin
Completion time: Fri Jan 1  1:00:01 2009
--------------------------------- Job Output ---------------------------------
`cli var name timestamp 2009-01-01-01.00.00`
`copy running-config bootflash:/$(HOSTNAME)-cfg.$(timestamp)`
`copy bootflash:/switch-cfg.2009-01-01-01.00.00 tftp://1.2.3.4/ vrf management `
copy: cannot access file '/bootflash/switch-cfg.2009-01-01-01.00.00'
==============================================================================
Job Name       : back-cfg                          Job Status: Success (0)
Schedule Name  : daily                             User Name : admin
Completion time: Fri Jan 2  1:00:01 2009
--------------------------------- Job Output ---------------------------------
`cli var name timestamp 2009-01-02-01.00.00`
`copy running-config bootflash:/switch-cfg.2009-01-02-01.00.00`
`copy bootflash:/switch-cfg.2009--01-02-01.00.00 tftp://1.2.3.4/ vrf management `
Connection to Server Established.
[                         ]         0.50KBTrying to connect to tftp server......
[######                   ]        24.50KB
TFTP put operation was successful
==============================================================================
switch# 

スケジューラの標準

この機能でサポートされる新規の標準または変更された標準はありません。また、既存の標準のサポートは変更されていません。