バッチファイル実行機能

概要

外部メモリの中に、コマンドを羅列したファイル(以下バッチファイル)を入れておき、そのファイルに記述されたコマンドを実行する機能です。

設定によってダウンロードボタンを押して実行させることができます。コマンドの実行結果やログは、ファイルとして外部メモリに書き出します。コンソールからexecute batch コマンドで実行することもできます。

本機能を用いて実現できる例を以下に挙げます。

  • PCがない環境でもPINGでの疎通確認などを行うことができます。
    • ルーターの設置作業時に、必要な装置や作業手順を大幅に減らすことができます。
  • 実行結果や設定内容、ルーターの状態などを外部メモリにファイルとして書き出します。
    • 外部メモリを取り出して携帯電話で確認したり、作業ログとして利用できます。

外部メモリの基本的な使用方法、ボタン操作、LEDやブザー音の仕様、SYSLOGメッセージの詳細については、外部メモリの利用の資料をご参照ください。

注意事項

本機能で実行可能なコマンドは以下になります。

  • ping
  • ping6
  • show~で始まるコマンド
  • copy config
  • copy exec

他のコマンドについても実行することはできますが、全ての動作を保証するものではありません。

本機能で実行できないコマンドは以下になります。

  • administrator
  • cold start
  • exit
  • quit
  • less~で始まるコマンド
  • telnet
  • remote setup briN
  • execute batch
  • usbhost use
  • sd use
  • http revision-up go
  • netvolante-dns go
  • sshd host key generate
  • http upload go
  • パイプ"|"を使用したコマンド("show log | grep ipsec"など)
  • ファイルへの書き出し">"を使用したコマンド("show log > usb1:log.txt"など)

対応機種とファームウェアリビジョン

ヤマハルーターでは、以下の機種およびファームウェアで、バッチファイル実行機能をサポートしています。

機種 ファームウェア
RTX5000 Rev.14.00.15以降
RTX820 Rev.11.03.16以降
RTX1200 Rev.10.01.20以降

詳細

バッチファイルを用意する

外部メモリにバッチファイル(コマンドを記述したファイル)を格納します。
ファイル名は"command.txt"とし、テキスト形式で保存してください。
読み込むファイルをexternal-memory batch filename コマンドで変更することができます。このコマンドを使ってファイルを直接指定する場合やファイル名を変更する場合は、後述の説明を参照してください。

バッチファイルには、ヤマハルーターのコマンドを1コマンドごとに改行をして記述してください。
コマンドは1行ずつ解釈されます。
対応しているコマンド以外の文字列は不正なコマンドとして無視され、そのことを示すログが出力されます。
"#"から始まる文字列はコメント行として扱われます。
コメントもログファイルに出力されます。

pingコマンドとping6コマンドについては、それぞれ以下のように動作します。

  • ping

    -cオプション(実行回数)の設定値は(1..10)です。省略した時は10になります。
    -wオプション(パケット送信間隔秒数)の設定値は(0.1..1.0)です。省略した時は1.0になります。

    -c、-wオプションを指定しなかった場合は以下となります。
    (HOST:pingをかけるホストのIPアドレスまたは名称)

    ping -c 10 -w 1 HOST
    

    指定したホストに対して1秒間隔で10回実行します。パケットを送信して次のパケットを送信するまでの間に相手からの返事を確認できなかった時にはその旨のメッセージを表示します。

  • ping6

    countパラメータ(送信回数)の設定値は(1..10)です。省略した時は10になります。

    countパラメータを指定しなかった場合は以下となります。
    (HOST:送信する宛先のIPv6アドレス、または名前)

    ping6 HOST 10
    

    指定したホストに対して10回実行します。

以下にバッチファイルの例を示します。

# バッチファイル例
show environment
show status lan1
show status pp 1
ping 192.168.100.2 #LANへの疎通確認
ping 192.168.0.1   #対向拠点への疎通確認
show log

バッチファイルを実行する

バッチファイルを実行するには以下の方法があります。

  • DOWNLOADボタンを押す
    • 以下の設定で、DOWNLOADボタンを押した時の動作をバッチファイルを実行するように設定します。
      operation button function download execute batch
      operation execute batch permit on
      
    • DOWNLOADボタンを3秒以上押下するとバッチファイルが実行されます。
      このとき"ピ"とアラームがなり、DOWNLOADランプがゆっくり点滅し(※)、全てのコマンドの実行が完了するとランプが消灯します。
    • バッチファイルに記述されているコマンドが全て実行完了すると、"ピポピポ"とアラームがなります。
    • 実行中に中断したい場合は、DOWNLOADボタンを1秒以上押します。
    • エラーで終了した場合は、DOWNLOADランプが点灯します。(※)
      DOWNLOADボタンを1秒以上押すとエラー状態を解除できます。
    (※) DOWNLOADランプがない機種ではDOWNLOADランプの点灯、点滅はありません。
  • execute batch コマンドを実行する
    • バッチファイルに記述されているコマンドが全て実行完了すると、"ピポピポ"とアラームがなります。
    • 実行中に中断したい場合はCtrl+Cを入力します。

実行結果を確認する

バッチファイルに記述されたコマンドの実行結果は、バッチファイルのあるディレクトリに"command-log.txt"ファイルとして出力されます。
このファイル名はexternal-memory batch filename コマンドで変更することができます。

バッチファイルの実行が完了したら外部メモリボタンを2秒間押して、外部メモリランプが消灯したことを確認後、外部メモリを取り外します。取り外した外部メモリ内の実行結果ファイルは、携帯電話など他の機器でその中身を確認できます。

実行結果ファイルの例

実行結果ファイルには以下の内容が書き込まれます。

  • バッチファイルが実行されたことを示すログ
  • バッチファイルで実行されたコマンド
  • バッチファイルで実行されたコマンドの実行結果(コンソールに表示されるものと同等)
  • バッチファイルに、本機能で対応しているコマンド以外の文字列が記述されていたエラーを示すログ

例として以下のバッチファイルを実行した場合の実行結果ファイルを示します。

バッチファイル:

# バッチファイル例
show environment
show status lan1
show status pp 1
ping 192.168.100.2 #LANへの疎通確認
ping 192.168.0.1   #対向拠点への疎通確認
show log
sd use off         #実行できないコマンドの例

実行結果ファイル:

2008/11/04 11:15:07: Execute batch file "sd1:/command.txt"
2008/11/04 11:15:07: # バッチファイル例

2008/11/04 11:15:07: show environment
RTX1200 BootROM Ver.1.00
RTX1200 Rev.10.01.07 (Thu Oct  9 18:53:33 2008)
  main:  RTX1200 ver=xxx serial=xxxx MAC-Address=00:a0:de:xx:xx:xx MAC-Address=00:a0:de:xx:xx:xx MAC-Address=00:a0:de:xx:xx:xx
CPU:   0%(5sec)   1%(1min)   0%(5min)    メモリ: 18% used
実行中ファームウェア: exec0  実行中設定ファイル: config0
デフォルトファームウェア: exec0  デフォルト設定ファイル: config0
起動時刻: 2008/11/04 11:11:31 +09:00
現在の時刻: 2008/11/04 11:15:07 +09:00
起動からの経過時間: 0日 00:03:36
セキュリティクラス レベル: 1, タイプ: ON, TELNET: OFF
筐体内温度(℃): 38

2008/11/04 11:15:07: show status lan1
LAN1
説明:
イーサネットアドレス:           00:a0:de:xx:xx:xx
動作モード設定:                 Type (Link status)
               PORT1:           Auto Negotiation (1000BASE-T Full Duplex)
               PORT2:           Auto Negotiation (Link Down)
               PORT3:           Auto Negotiation (Link Down)
               PORT4:           Auto Negotiation (Link Down)
               PORT5:           Auto Negotiation (Link Down)
               PORT6:           Auto Negotiation (Link Down)
               PORT7:           Auto Negotiation (Link Down)
               PORT8:           Auto Negotiation (Link Down)
最大パケット長(MTU):            1500 オクテット
プロミスキャスモード:           OFF
送信パケット:                   8 パケット(2052 オクテット)
  IPv4(全体/ファストパス):      3 パケット / 0 パケット
  IPv6(全体/ファストパス):      1 パケット / 0 パケット
受信パケット:                   50 パケット(7417 オクテット)
  IPv4:                         42 パケット
  IPv6:                         0 パケット
未サポートパケットの受信:       3

2008/11/04 11:15:07: show status pp 1
PP[01]:
携帯端末は接続されています
接続先: mopera.net
下り最大速度: 3648000 bps
発信側
通信時間: 2分14秒
受信: 17 回 [1664 オクテット]
送信: 18 回 [2497 オクテット]
累積受信: 17 回 [1664 オクテット]
累積送信: 18 回 [2497 オクテット]
累積時間: 134 秒
受信廃棄: 0 回 [0 オクテット]
送信廃棄: 0 回 [0 オクテット]
FCSエラー: 0  累計: 0
   受信破棄: 0  キュー長: 0/20
   送信破棄: 0  エラー: 0
PPPオプション
    LCP Local: Magic-Number ACCM ACFC PFC, Remote: CHAP ACCM ACFC PFC
    IPCP Local: IP-Address Primary-DNS(xxx.xxx.xxx.xxx) Secondary-DNS(xxx.xxx.xxx.xxx), Remote: IP-Address
    PP IP Address Local: xxx.xxx.xxx.xxx, Remote: xxx.xxx.xxx.xxx
    CCP: None

2008/11/04 11:15:07: ping -c 10 192.168.100.2 #LANへの疎通確認
192.168.100.2から受信: シーケンス番号=0 ttl=127 時間=0.775ミリ秒
192.168.100.2から受信: シーケンス番号=1 ttl=127 時間=0.468ミリ秒
192.168.100.2から受信: シーケンス番号=2 ttl=127 時間=0.485ミリ秒
192.168.100.2から受信: シーケンス番号=3 ttl=127 時間=0.474ミリ秒
192.168.100.2から受信: シーケンス番号=4 ttl=127 時間=0.481ミリ秒
192.168.100.2から受信: シーケンス番号=5 ttl=127 時間=0.470ミリ秒
192.168.100.2から受信: シーケンス番号=6 ttl=127 時間=0.486ミリ秒
192.168.100.2から受信: シーケンス番号=7 ttl=127 時間=0.487ミリ秒
192.168.100.2から受信: シーケンス番号=8 ttl=127 時間=0.470ミリ秒
192.168.100.2から受信: シーケンス番号=9 ttl=127 時間=0.471ミリ秒

10個のパケットを送信し、10個のパケットを受信しました。0.0%パケットロス
往復遅延 最低/平均/最大 = 0.468/0.506/0.775 ミリ秒

2008/11/04 11:15:17: ping -c 10 192.168.0.1   #対向拠点への疎通確認
192.168.0.1から受信: シーケンス番号=0 ttl=254 時間=149.662ミリ秒
192.168.0.1から受信: シーケンス番号=1 ttl=254 時間=140.139ミリ秒
192.168.0.1から受信: シーケンス番号=2 ttl=254 時間=160.076ミリ秒
192.168.0.1から受信: シーケンス番号=3 ttl=254 時間=140.028ミリ秒
192.168.0.1から受信: シーケンス番号=4 ttl=254 時間=149.911ミリ秒
192.168.0.1から受信: シーケンス番号=5 ttl=254 時間=239.826ミリ秒
192.168.0.1から受信: シーケンス番号=6 ttl=254 時間=249.740ミリ秒
192.168.0.1から受信: シーケンス番号=7 ttl=254 時間=250.657ミリ秒
192.168.0.1から受信: シーケンス番号=8 ttl=254 時間=149.603ミリ秒
192.168.0.1から受信: シーケンス番号=9 ttl=254 時間=139.543ミリ秒

10個のパケットを送信し、10個のパケットを受信しました。0.0%パケットロス
往復遅延 最低/平均/最大 = 139.543/176.918/250.657 ミリ秒

2008/11/04 11:15:27: show log
2008/11/04 11:11:39: [DHCPD] Allocates 192.168.100.2: xx:xx:xx:xx:xx:xx
2008/11/04 11:11:42: [IKE] initiate ISAKMP phase to xxx.xxx.xxx.xxx (local address 192.168.100.1)
2008/11/04 11:12:50: PP[01] IP Commencing: UDP 192.168.100.1:500 > xxx.xxx.xxx.xxx:500
2008/11/04 11:12:50: PP[01] Calling mopera.net with usb1(foma)
2008/11/04 11:12:50: USB[1] SEND [ATD186*99***3#]
2008/11/04 11:12:53: USB[1] RECV [CONNECT 3648000]
2008/11/04 11:12:53: USB[1] Connected 3648000 bps
2008/11/04 11:12:54: PP[01] PPP/IPCP up  (Local: xxx.xxx.xxx.xxx, Remote: xxx.xxx.xxx.xxx)
2008/11/04 11:13:21: [IKE] respond ISAKMP phase to xxx.xxx.xxx.xxx
2008/11/04 11:13:23: [IKE] initiate IPsec phase to xxx.xxx.xxx.xxx
2008/11/04 11:13:25: IP Tunnel[1] Up
2008/11/04 11:13:26: [IKE] respond IPsec phase to xxx.xxx.xxx.xxx
2008/11/04 11:14:19: [SD] device attached : vendor=0x058f <Generic>, product=0x6335 <Mass Storage Device>
2008/11/04 11:14:20: [SD] microSD card is attached
2008/11/04 11:15:07: [SD] Batch-log file was opened("sd1:/command-log.txt")
2008/11/04 11:15:07: [SD] Execute batch file "sd1:/command.txt"

2008/11/04 11:15:27: sd use off         #実行できないコマンドの例
invalid command or parameter

バッチファイルのファイル名とログファイルのファイル名を変更する

工場出荷状態では、"command.txt"がバッチファイルとして外部メモリから読み込まれます。このファイル名をexternal-memory batch filename コマンドで変更することができます。

例:microSDカードからファイル名"command_hoge.txt"をバッチファイルとして読み込む

# external-memory batch filename sd1:command_hoge.txt

上記の設定例で実行の操作を行うと、microSDカードから"command_hoge.txt"を自動検索して、そのファイルに記述されているコマンドを実行します。ファイルの場所があらかじめわかっている場合には、ファイルの場所を絶対パスで直接指定することで検索にかかる時間を短縮できます。ファイルの自動検索についての詳細は、外部メモリの利用の資料を参照してください。

実行結果のログファイルは"(バッチファイル名)-log.txt"というファイル名で、外部メモリ内のバッチファイルがあるディレクトリに作成されます。上記の例の設定をした場合、microSDカード内の"command_hoge.txt"があるディレクトリに、"command_hoge-log.txt"という名前のログファイルが作成されます。

同コマンドではログファイルの名前も変更することができます。

例:microSDカードからファイル名"command_hoge.txt"をバッチファイルとして読み込み、ファイル名"command.log"に結果を出力する

# external-memory batch filename sd1:command_hoge.txt command.log

上記の設定例で実行の操作を行うと、"command_hoge.txt"に記述されているコマンドを実行し、その結果を"command_hoge.txt"があるディレクトリに"command.log"というファイルとして出力します。

特記事項

  • 実行結果ファイルと同名のファイルが既に外部メモリ内に存在する場合、実行結果はそのファイルの末尾に追記されます。
  • 実行結果ファイルの追記ができなくなった場合は、上書きなどを行わずそれ以上追記されません。必要に応じて、ファイルを削除してメモリ容量を確保するなどしてください。
  • バッチファイルでコマンドを実行した場合、SYSLOGに出力されるデバイス名は"GENERAL"になります。
    例 : "save"コマンドを実行した場合
    Configuration saved in "CONFIG0" by GENERAL

コマンド仕様

バッチファイルを実行する

[書式]

execute batch

[設定値]

なし

[説明]

外部メモリのバッチファイルを実行する。実行されるバッチファイル名は external-memory batch filename コマンドで指定する。

[適用モデル]

RTX5000RTX1200RTX820

バッチファイルと実行結果ファイルの設定

[書式]

external-memory batch filename BATCHFILE [LOGFILE]
no external-memory batch filename [BATCHFILE [LOGFILE]]

[設定値]

  • BATCHFILE ... バッチファイル名 (半角64文字以内)
    • usb1:FILENAME ... USBポート1 に接続されたUSBメモリ内のバッチファイル名
    • sd1:FILENAME ... microSDカード内のバッチファイル名
    • *:FILENAME ... USBメモリおよびmicroSDカード内のバッチファイル名
  • LOGFILE
    • FILENAME ... 実行結果ファイル名 (半角64文字以内)

[説明]

外部メモリ内のバッチファイル名と実行結果ファイル名を指定する。

BATCHFILE に "*:" を指定した場合、指定するファイルの検索はまず microSDカードから 行われ、指定したファイルがなければ USBポートに接続されたUSBメモリが検索される。

FILENAMEは絶対パスを使ってファイルを指定するかファイル名のみを指定する。バッチファイルのFILENAMEにファイル名のみを指定した場合は外部メモリ内から自動検索する。複数のファイルがある場合、ディレクトリ階層上、最もルートディレクトリに近く、アルファベット順に先のディレクトリにあるファイルが選ばれる。

LOGFILEを省略した場合、"バッチファイル名-log.txt"という名前で実行結果ファイルが作成される。

[初期値]

BATCHFILE ... *:command.txt (RTX1200, RTX820)
BATCHFILE ... sd1:command.txt (RTX5000)
LOGFILE ... command-log.txt

[ノート]

RTX1200 Rev.10.01.33 以降、および、Rev.11.03 系以降では、BATCHFILE の FILENAME で指定可能な文字数は、LOGFILE を指定した場合は、半角99文字以内。LOGFILE を省略した場合は、拡張子を除いて半角91文字以内。

[設定例]

  1. microSDカードのファイルから"command_hoge.txt"をバッチファイルとして検索する。
    # external-memory batch filename sd1:command_hoge.txt
    
  2. microSDカードのディレクトリ"dir1"から"command_hoge.txt"を読み込む。
    # external-memory batch filename sd1:/dir1/command_hoge.txt
    

[適用モデル]

RTX5000RTX1200RTX820

DOWNLOADボタンを押した時に実行する機能の設定

[書式]

operation button function download FUNCTION
no operation button function download [FUNCTION]

[設定値]

  • FUNCTION ... DOWNLOADボタンを押した時に実行する機能
    • http revision-up ... HTTPリビジョンアップ
    • execute batch ... バッチファイルの実行

[説明]

DOWNLOADボタンを押した時に実行する機能を設定する。機能実行中はDOWNLOADボタンの下のランプが点灯し、機能の実行が完了すると消灯する。

[ノート]

DOWNLOADランプがない機種ではDOWNLOADランプの点灯、点滅はない。

[初期値]

http revision-up

[適用モデル]

RTX1200RTX820

DOWNLOADボタンによるバッチファイルの実行を許可するか否かの設定

[書式]

operation execute batch permit PERMIT
no operation execute batch permit [PERMIT]

[設定値]

  • PERMIT
    • on ... DOWNLOADボタンによるバッチファイルの実行を許可する
    • off ... DOWNLOADボタンによるバッチファイルの実行を許可しない

[説明]

DOWNLOADボタンによりバッチファイルの実行機能を使用するか否かを設定する。

[初期値]

off

[適用モデル]

RTX1200RTX820

ページトップへ戻る