Cisco Nexus 9000 シリーズ NX-OS システム管理コンフィギュレーション ガイド リリース 6.x
スケジューラの設定
スケジューラの設定

目次

スケジューラの設定

この章では、Cisco NX-OS デバイス上でスケジューラを設定する方法について説明します。

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

スケジューラについて

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

  • Quality of Service(QoS)ポリシーの変更
  • データのバックアップ
  • 設定の保存

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

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

  • ジョブ:コマンド リストとして定義され、特定のスケジュールに従って実行される定期的なタスク。
  • スケジュール:ジョブを実行するタイムテーブル 1 つのスケジュールに複数のジョブを割り当てることができます。 1 つのスケジュールは、定期的、または 1 回だけ実行するように定義されます。
    • 定期モード:ジョブを削除するまで、ジョブの実行が定期的な間隔で繰り返されます。 次のタイプの定期的な間隔を設定できます。
      • Daily:ジョブは 1 日 1 回実行されます。
      • Weekly:ジョブは毎週 1 回実行されます。
      • Monthly:ジョブは毎月 1 回実行されます。
      • Delta:ジョブは、指定した時間に開始され、以後、指定した間隔(days:hours:minutes)で実行されます。
    • One-time mode:ジョブは、指定した時間に 1 回だけ実行されます。

リモート ユーザ認証

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

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

ログ

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

High Availability(高可用性)

スケジューリングされたジョブは、スーパバイザのスイッチオーバーまたはソフトウェアのリロード後も使用可能です。

スケジューラのライセンス要件

製品

ライセンス要件

Cisco NX-OS

スケジューラにはライセンスは不要です。 ライセンス パッケージに含まれていない機能は nx-os イメージにバンドルされており、無料で提供されます。 Cisco NX-OS ライセンス方式の詳細については、Cisco NX-OS Licensing Guide』を参照してください。

スケジューラの前提条件

スケジューラの前提条件は次のとおりです。

  • 条件付き機能をイネーブルにしてからでなければ、ジョブでそれらの機能を設定できません。
  • ライセンスの必要な機能をジョブで設定するには、各機能の有効なライセンスをインストールしておく必要があります。
  • スケジューリングされたジョブを設定するには、network-admin ユーザ特権が必要です。

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

スケジューラに関する設定時の注意事項および制約事項は、次のとおりです。

  • ジョブの実行中に次のいずれかの状況が発生した場合、スケジューラは失敗する可能性があります。
  • 時刻が設定されていることを確認します。 スケジューラはデフォルトのタイムテーブルを適用しません。 スケジュールを作成し、ジョブを割り当てても、時刻を設定しなければ、ジョブは開始しません。
  • ジョブは開始されると非インタラクティブ方式で実行されるため、ジョブの定義中、インタラクティブなコマンドや中断を伴うコマンド(例:copy bootflash: file ftp: URIwrite erase、その他類似のコマンド)が指定されていないことを確認してください。

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

この表は、スケジューラのデフォルト設定を示します。

パラメータ デフォルト
スケジューラの状態 ディセーブル
ログ ファイル サイズ 16 KB

スケジューラの設定

スケジューラのイネーブル化またはディセーブル化

ジョブを設定してスケジュールできるようにスケジューラ機能をイネーブルにすることができ、または、スケジューラをイネーブルにした後にスケジューラ機能をディセーブルにすることもできます。

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


    例:
    switch# configure terminal
    switch(config)#
    
     

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

     
    ステップ 2[no] feature scheduler


    例:
    switch(config)# feature scheduler
    
     

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

     
    ステップ 3show scheduler config


    例:
    switch(config)# show scheduler config
    config terminal
    feature scheduler
    scheduler logfile size 16
    end
    
     
    (任意)

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

     
    ステップ 4copy running-config startup-config


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

    実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

     

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

    ジョブ、スケジュール、およびジョブ出力をキャプチャするログ ファイルのサイズを設定できます。

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


      例:
      switch# configure terminal
      switch(config)#
      
       

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

       
      ステップ 2scheduler logfile size value


      例:
      switch(config)# scheduler logfile size 1024
      
       

      スケジューラ ログ ファイル サイズをキロバイト(KB)で定義します。 範囲は 16 ~ 1024 です。 デフォルトは 16 です。

      (注)      ジョブ出力のサイズがログ ファイルのサイズより大きい場合、出力内容は切り捨てられます。
       
      ステップ 3copy running-config startup-config


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

      実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

       

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

      ジョブの設定およびスケジューリングを行うユーザにリモート認証を使用するように、スケジューラを設定できます。


      (注)  


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

      (注)  


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


        例:
        switch# configure terminal
        switch(config)#
        
         

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

         
        ステップ 2scheduler aaa-authentication password [0 | 7] password


        例:
        switch(config)# scheduler aaa-authentication password X12y34Z56a
        
         

        現在ログインしているユーザ用のクリア テキスト パスワードを設定します。

         
        ステップ 3scheduler aaa-authentication username name password [0 | 7] password


        例:
        switch(config)# scheduler aaa-authentication username newuser password Z98y76X54b
        
         

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

         
        ステップ 4show running-config | include “scheduler aaa-authentication”


        例:
        switch(config)# show running-config | include “scheduler aaa-authentication”
        
         
        (任意)

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

         
        ステップ 5copy running-config startup-config


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

        実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

         

        ジョブの定義

        ジョブを定義して、ジョブ名とコマンド シーケンスを指定することができます。


        注意    


        一旦ジョブを定義すると、コマンドの変更、削除はできません。 ジョブを変更するには、そのジョブを削除して新しいジョブを作成する必要があります。
        手順
           コマンドまたはアクション目的
          ステップ 1configure terminal


          例:
          switch# configure terminal
          switch(config)#
          
           

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

           
          ステップ 2scheduler job name string


          例:
          switch(config)# scheduler job name backup-cfg
          switch(config-job)
          
           

          ジョブを作成し、ジョブ コンフィギュレーション モードを開始します。

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

           
          ステップ 3command1 ;[command2 ;command3 ;...]


          例:
          switch(config-job)# cli var name timestamp
          $(TIMESTAMP) ;copy running-config
          bootflash:/$(SWITCHNAME)-cfg.$(timestamp)
          ;copy
          bootflash:/$(SWITCHNAME)-cfg.$(timestamp)
          tftp://1.2.3.4/ vrf management
          switch(config-job)#
          
           

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

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

           
          ステップ 4show scheduler job [name name]


          例:
          switch(config-job)# show scheduler job
          
           
          (任意)

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

           
          ステップ 5copy running-config startup-config


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

          実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

           

          ジョブの削除

          スケジューラからジョブを削除できます。

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


            例:
            switch# configure terminal
            switch(config)#
            
             

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

             
            ステップ 2no scheduler job name string


            例:
            switch(config)# no scheduler job name configsave
            switch(config-job)
            
             

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

             
            ステップ 3show scheduler job [name name]


            例:
            switch(config-job)# show scheduler job name configsave
            
             
            (任意)

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

             
            ステップ 4copy running-config startup-config


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

            実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

             

            タイムテーブルの定義

            1 つまたは複数のジョブで使用するタイムテーブルをスケジューラで定義できます。

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

            • スケジューラは、time start 23:00 repeat 4:00:00 コマンドの開始時刻が 2013 年 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 分に次のジョブを開始します。
            手順
               コマンドまたはアクション目的
              ステップ 1configure terminal


              例:
              switch# configure terminal
              switch(config)#
              
               

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

               
              ステップ 2scheduler schedule name string


              例:
              switch(config)# scheduler schedule name weekendbackupqos
              switch(config-schedule)#
              
               

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

               
              ステップ 3job name string


              例:
              switch(config-schedule)# job name offpeakZoning
              
               

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

               
              ステップ 4time daily time


              例:
              switch(config-schedule)# time daily 23:00
              
               

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

               
              ステップ 5time weekly [[dow:] HH:]MM


              例:
              switch(config-schedule)# time weekly Sun:23:00
              
               

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

              曜日(dow)は次のいずれかの方法で指定されます。

              • 曜日を表す整数。たとえば 1 = 日曜日、2 = 月曜日。
              • 曜日の省略形。たとえば Sun = Sunday。

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

               
              ステップ 6time monthly [[dm:]HH:]MM


              例:
              switch(config-schedule)# time monthly 28:23:00
              
               

              ジョブが月の特定の日(dm)に開始することを意味します。 29、30 または 31 のいずれかを指定した場合、そのジョブは各月の最終日に開始されます。

               
              ステップ 7time start {now repeat repeat-interval | delta-time [repeat repeat-interval]}


              例:
              switch(config-schedule)# time start now repeat 48:00
              
               

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

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

              • delta-time:スケジュールの設定後、ジョブの開始までの待機時間を指定します。
              • now:ジョブを今すぐ開始することを指定します。
              • repeat repeat-interval:ジョブを反復する回数を指定します。

              この例では、ただちにジョブが開始され、48 時間間隔で反復されます。

               
              ステップ 8show scheduler config


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

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

               
              ステップ 9copy running-config startup-config


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

              実行コンフィギュレーションを、スタートアップ コンフィギュレーションにコピーします。

               

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

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

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


                例:
                switch# configure terminal
                switch(config)#
                
                 

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

                 
                ステップ 2clear scheduler logfile


                例:
                switch(config)# clear scheduler
                logfile
                
                 

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

                 

                スケジューラの設定確認

                スケジューラの設定情報を表示するには、次のタスクのいずれかを行います。

                コマンド 目的
                show scheduler config スケジューラ設定を表示します。
                show scheduler job [name string] 設定されているジョブを表示します。
                show scheduler logfile スケジューラ ログ ファイルの内容を表示します。
                show scheduler schedule [name string] 設定されているスケジュールを表示します。

                スケジューラの設定例

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

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

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

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

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

                switch# configure terminal
                switch(config)# scheduler schedule name daily
                switch(config-if)# job name backup-cfg
                switch(config-if)# time daily 1:00
                switch(config-if)# 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 2013
                Last Completion Time: Fri Jan 2 1:00:01 2013
                Execution count : 2
                -----------------------------------------------
                Job Name Last Execution Status
                -----------------------------------------------
                back-cfg Success (0)
                switch#
                
                

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

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

                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 2013
                --------------------------------- Job Output ---------------------------------
                `cli var name timestamp 2013-01-01-01.00.00`
                `copy running-config bootflash:/$(HOSTNAME)-cfg.$(timestamp)`
                `copy bootflash:/switch-cfg.2013-01-01-01.00.00 tftp://1.2.3.4/ vrf management `
                copy: cannot access file '/bootflash/switch-cfg.2013-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 2013
                --------------------------------- Job Output ---------------------------------
                `cli var name timestamp 2013-01-02-01.00.00`
                `copy running-config bootflash:/switch-cfg.2013-01-02-01.00.00`
                `copy bootflash:/switch-cfg.2013--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#