外部メモリファイルコピー機能

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


概要

本機能は、ルーター本体へ外部メモリ(USBメモリ、microSDメモリカード)を接続することにより、ルーターと外部メモリ間で各種データの操作を行うものです。使用できる外部メモリは機種によって異なります。

本機能により、以下の動作が可能となります。

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

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


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

ヤマハルーターでは以下の機種およびファームウェアで、外部メモリ機能をサポートします。

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

利用方法

外部メモリボタンおよびDOWNLOADボタンの操作

外部メモリボタンとDOWNLOADボタンを同時に3秒間押し続けると、外部メモリ内に保存されているファームウェアファイル、および設定ファイルをルーターの内蔵フラッシュROMへコピーすることができます。コピーは設定ファイル、ファームウェアファイルの順に行われ、成功するとアラームが鳴り、自動的に再起動します。

外部メモリ起動機能のある機種では、起動時に外部メモリが接続されていると、外部メモリに格納されているファームウェアファイルや設定ファイルで動作します。起動時のPOWERランプが点滅している間に外部メモリを抜けば、外部メモリは認識されずに内蔵フラッシュROMのファームウェアファイルと設定ファイルで動作します。POWERランプが点滅する約10秒間はまだ外部メモリを認識していませんので、外部メモリを抜く前に外部メモリボタンを押す必要はありません。
あるいは、external-memory boot permit offコマンドで、外部メモリから起動させないように設定しておくこともできます。
外部メモリのファイルで動作している時には、ファームウェアのバージョンアップ先や設定内容の保存先が外部メモリのファイルになります。

外部メモリ起動機能のない機種では、内蔵フラッシュROMのファームウェアファイルと設定ファイルで動作します。

この操作でコピーする各ファイルは、Rev.10.01以降のファームウェアの場合は、external-memory config filename コマンドとexternal-memory exec filename コマンド、それ以外のファームウェアの場合は、usbhost config filename コマンドとusbhost exec filename コマンドで指定することができます。
工場出荷状態では外部メモリ内の'config.txt'と'機種名.bin'という名前のファイルが、それぞれ設定ファイルとファームウェアファイルとしてルーターの内蔵フラッシュROMにコピーされます。例えばRTX1200の場合、ファームウェアファイルは'rtx1200.bin'という名前になります。

Rev.10.01以降の場合、設定ファイルとファームウェアファイルがルートディレクトリ以外に置かれている場合でも、自動検索してそれらを見つけることができます。詳しくは外部メモリの利用の資料をご参照ください。

指定した設定ファイルとファームウェアファイルがどちらも存在しない状態でボタン操作を行った場合、コピー動作としては何もせず、アラームが鳴ります。

コマンド入力による操作


詳細

外部メモリへのSYSLOG保存

バックアップファイル方式

SYSLOGのバックアップファイルの保存方式について説明します。なお、機種、ファームウェアの違いにより、若干動作が異なっていますので、注意してください。

Rev.11.00.13 以降の場合

SYSLOGメッセージを外部メモリ内へ保存する時、一連の処理の中で2種類のファイルを使用します。external-memory syslog filename コマンドで指定する、新規SYSLOGメッセージを書き込むためのファイル (以下、mainファイル) と、mainファイルのサイズが本コマンドで指定された上限値、もしくは自動計算によって設定された上限値に達した際の退避先となるファイル (以下、backupファイル) です。

新たに追加するSYSLOGメッセージは常にmainファイルに書き込まれます(下図1)。 ここで、mainファイルのサイズが、external-memory syslog filename コマンドで指定された上限値、もしくは空き容量から自動計算によって設定された上限値に達すると、その時点でmainファイルは一旦閉じられ、mainファイルをbackupファイル名に変更して退避させます(下図2)。そしてmainファイル名で新規にファイルをオープンし、書き込みを再開します(下図3)。 再び、mainファイルのサイズが上限値に達すると、同様にbackupファイルに退避させます。このとき、external-memory syslog filename コマンドで指定された backupファイル数の上限値に達した場合や外部メモリに空き容量がない場合には、backupファイル名に付加された日時データ("_yyyymmdd_hhmmss" 形式で表される文字列)の最も古いbackupファイルが削除されます(下図4)。

1. 新たなSYSLOGメッセージは常にmainファイルに書き込まれる
    +-------------+
    | 〜〜〜〜〜  |
    | 〜〜〜      |
    | 〜〜〜〜    |
    | 〜〜〜〜〜  |
    | 〜〜〜I     |
    |             |
    |             |
    +-------------+
      mainファイル

2. mainファイルのサイズが上限値に達したらmainファイルをbackupファイルとして退避
    +- - - - - - -+          +-------------+
      〜〜〜〜〜  |          | 〜〜〜〜〜  |
    | 〜〜〜                 | 〜〜〜      |
      〜〜〜〜    |  rename  | 〜〜〜〜    |
    | 〜〜〜〜〜     ======> | 〜〜〜〜〜  |
      〜〜〜〜    |          | 〜〜〜〜    |
    | 〜〜〜                 | 〜〜〜      |
      〜〜〜〜〜  |          | 〜〜〜〜〜  |
    + - - - - - - +          +-------------+
      mainファイル            backupファイル

3. mainファイル名で新規ファイルをオープンして書き込み再開
    +-------------+          +-------------+
    | 〜〜I       |          | 〜〜〜〜〜  |
    |             |          | 〜〜〜      |
    |             |          | 〜〜〜〜    |
    |             |          | 〜〜〜〜〜  |
    |             |          | 〜〜〜〜    |
    |             |          | 〜〜〜      |
    |             |          | 〜〜〜〜〜  |
    +-------------+          +-------------+
      mainファイル            backupファイル

4. 再び、mainファイルのサイズが上限値に達したらmainファイルをbackupファイルとして退避
   条件次第で最も古いファイルを削除

    +-------------+          +-------------+    +-------------+   +-------------+          +- - - - - - -+
    | 〜〜〜〜〜  |          | 〜〜〜〜〜  |    | 〜〜〜〜〜  |   | 〜〜〜〜〜  |          |             |
    | 〜〜〜      |          | 〜〜〜      |    | 〜〜〜      |   | 〜〜〜      |          |             |
    | 〜〜〜〜    |  rename  | 〜〜〜〜    |    | 〜〜〜〜    |   | 〜〜〜〜    |  delete  |             |
    | 〜〜〜〜〜  |  ======> | 〜〜〜〜〜  |    | 〜〜〜〜〜  |   | 〜〜〜〜〜  |  ======> |             |
    | 〜〜〜〜    |          | 〜〜〜〜    |    | 〜〜〜〜    |   | 〜〜〜〜    |          |             |
    | 〜〜〜      |          | 〜〜〜      |    | 〜〜〜      |   | 〜〜〜      |          |             |
    | 〜〜〜〜〜  |          | 〜〜〜〜〜  |    | 〜〜〜〜〜  |   | 〜〜〜〜〜  |          |             |
    +-------------+          +-------------+    +-------------+   +-------------+          +- - - - - - -+
      mainファイル            backupファイル     backupファイル    backupファイル
                              20110103_000000    20110102_000000   20110101_000000

5. mainファイル名で新規ファイルをオープンして書き込み再開
   以降、項番2〜4を繰り返す

このとき作成されるbackupファイル名は、mainファイル名の後に退避動作を行った日時を表す "_yyyymmdd_hhmmss" 形式の文字列を付加したものとなります。
以下に "_yyyymmdd_hhmmss" の文字列の意味を示します。

例えば、mainファイル名が "syslog.txt" で、2011年1月1日 12時34分56秒 に backupファイルを作成した場合は、backupファイル名は、"syslog_20110101_123456.txt" となります。

外部メモリに十分な空き容量がある場合には、external-memory syslog filename コマンドで指定されたファイルサイズがmainファイルの上限サイズとなり、そのサイズのbackupファイルが指定されたファイル数分保存されます。しかし、十分な空き容量がない場合には、保存されるbackupファイルは、本コマンドで指定されたファイルサイズやbackupファイル数と異なることに注意してください。
また、必要に応じて、rotate external-memory syslog コマンドを実行することで、ファイルサイズに関係なく退避することができます。このとき、既に同名のbackupファイルが存在する場合には、退避は実行されません。
なお、mainファイルの上限サイズの自動計算については次項「SYSLOGファイルサイズの自動計算」を参照してください。

Rev.9.01.09 〜 Rev.11.00.07 の場合

SYSLOGメッセージを外部メモリ内へ保存する時、一連の処理の中で2種類のファイルを使用します。external-memory syslog filename コマンドあるいはusbhost syslog filename コマンドで指定する、新規SYSLOGメッセージを書き込むためのファイル(以下、mainファイル)と、mainファイルのサイズが自動計算によって設定された上限値に達した際の退避先となるファイル(以下、backupファイル)です。

新たに追加するSYSLOGメッセージは常にmainファイルに書き込まれます(下図1)。ここで、mainファイルのサイズが自動計算によって設定された上限値に達すると、その時点でmainファイルは一旦閉じられ、mainファイルをbackupファイル名に変更して退避させます(下図2)。そしてmainファイル名で新規にファイルをオープンし、書き込みを再開します(下図3)。

1. 新たなSYSLOGメッセージは常にmainファイルに書き込まれる
    +-------------+
    | 〜〜〜〜〜  |
    | 〜〜〜      |
    | 〜〜〜〜    |
    | 〜〜〜〜〜  |
    | 〜〜〜I     |
    |             |
    |             |
    +-------------+
      mainファイル

2. mainファイルのサイズが上限値に達したらmainファイルをbackupファイルとして退避
    +- - - - - - -+          +-------------+
      〜〜〜〜〜  |          | 〜〜〜〜〜  |
    | 〜〜〜                 | 〜〜〜      |
      〜〜〜〜    |  rename  | 〜〜〜〜    |
    | 〜〜〜〜〜     ======> | 〜〜〜〜〜  |
      〜〜〜〜    |          | 〜〜〜〜    |
    | 〜〜〜                 | 〜〜〜      |
      〜〜〜〜〜  |          | 〜〜〜〜〜  |
    + - - - - - - +          +-------------+
      mainファイル            backupファイル

3. mainファイル名で新規ファイルをオープンして書き込み再開
    +-------------+          +-------------+
    | 〜〜I       |          | 〜〜〜〜〜  |
    |             |          | 〜〜〜      |
    |             |          | 〜〜〜〜    |
    |             |          | 〜〜〜〜〜  |
    |             |          | 〜〜〜〜    |
    |             |          | 〜〜〜      |
    |             |          | 〜〜〜〜〜  |
    +-------------+          +-------------+
      mainファイル            backupファイル

このとき作成されるbackupファイル名は以下の規則に従って決定されます。

尚、名前の重複を避けるため、mainファイル名に'.bak'拡張子を含む名前を指定することはできません。

退避動作を行う時点でbackupファイルが既に存在している場合、既存のbackupファイルの内容は消去されるので注意してください。また、mainファイルの上限サイズの自動計算については次項「SYSLOGファイルサイズの自動計算」を参照してください。

SYSLOGファイルサイズの自動計算

外部メモリにSYSLOGメッセージを出力する際、ルーターは外部メモリの空き領域の範囲内でできるだけ多くのメッセージを残すように動作します。具体的には、SYSLOGメッセージの書き込みを開始する前に外部メモリの空き領域を調べ、その領域を各用途向けに以下のような割合で分配します。このとき、mainファイル用、およびbackupファイル用として割り当てられた範囲内でSYSLOGメッセージを書き込みます。

    +-------------------+  ----
    |    config保存用   |   ∧
    |            (注) |
    +-------------------+
    |                   |   外
    |                   |   部
    |   mainファイル用  |   メ
    |                   |   モ
    |                   |   リ
    +-------------------+   空
    |                   |   き
    |                   |   領
    |  backupファイル用 |   域
    |                   |
    |                   |   V
    +-------------------+  ----

  (注)統計情報の保存機能を有する機種では別途、統計情報ファイル保存用の領域が割り当てられる。

mainファイル、またはbackupファイルが既に存在する場合は、それらのファイル領域も空き領域の一部として計算されます。

上図において、外部メモリの空き容量をEn、config保存用の領域をCn、mainファイル用の領域をMn、またbackupファイル用の領域をBnとすると、各領域のサイズはおよそ以下のような計算で求められます。

    Cn: 1MB、もしくはEn/10のうち、どちらか大きい方。但し、En/10の上限は100MB
    Bn: (En - Cn)/2
    Mn: En - Cn - Bn

    ※実際に設定される値は上記計算値よりも若干小さくなる場合があります

また書き込み途中に、外部メモリ内の空き容量の変化によりmainファイルに上限サイズまで書き込めなかった場合は、その時点でのmainファイルをbackupファイルとして退避させ、再び上述の方法で各使用領域を計算します。

動作状態の確認

本機能の動作状態の確認には、show status external-memory コマンドやshow status usbhost コマンドを使用します。以下に、コマンド入力時の表示例を示します。

SYSLOG保存に関する注意事項

  1. external-memory syslog filename コマンド もしくはusbhost syslog filename コマンドで指定したSYSLOG記録用のファイルが、挿入された外部メモリに既に存在する場合は、上限のサイズになるまでファイルの末尾から追記されていきます。
  2. SYSLOGの記録は外部メモリとして認識されるまでは開始されません。従ってルーター起動時等に出力されるSYSLOGは外部メモリに記録されず、必ずしもルーター本体で表示されるSYSLOGと外部メモリに記録される内容は一致しません。
  3. 同じ内容のSYSLOGが連続して出力される場合は外部メモリへの書き込みを省略し、 "same message repeated N times"のように繰り返された回数だけを記録します。

コマンド仕様

Rev.11.00.13 以降

Rev.10.01 〜 Rev.11.00.07 の場合

Rev.10.01 系以降

Rev.10.00以前

共通


[EOF]