バッチファイル実行機能

$Date: 2023/07/07 18:17:12 $


概要

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

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

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

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

FUNCボタンが搭載された機種を使用する場合は、DOWNLOADボタンをFUNCボタンに読み替えてください。


注意事項

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

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

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


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

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

機種 ファームウェア
RTX3510 すべてのリビジョン
RTX1300
RTX1220
RTX830
NVR510
NVR700W
RTX1210
RTX5000
RTX3500
FWX120
RTX810
NVR500
RTX1200

詳細

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

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

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

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

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

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

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

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

実行結果を確認する

バッチファイルに記述されたコマンドの実行結果は、バッチファイルのあるディレクトリに"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"を自動検索して、そのファイルに記述されているコマンドを実行します。ファイルの場所があらかじめわかっている場合には、ファイルの場所を絶対パスで直接指定することで検索にかかる時間を短縮できます。ファイルの自動検索についての詳細は、外部メモリの利用の資料を参照してください。

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

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

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

特記事項


コマンド仕様


[EOF]