HTTPアップロード機能

$Date: 2025/11/20 15:09:00 $


概要

ヤマハルーター内の情報(configやSYSLOGなど)を指定したHTTPサーバーにアップロードすることができる機能です。

複数拠点のconfigやログの集中管理に使用することができます。

この機能を使用するためには、HTTPサーバー側での対応も必要です。サンプルに示すようなスクリプトをHTTPサーバー側で実行させます。


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

機種 ファームウェア
RTX1300 すべてのリビジョン
RTX1220
RTX1210
RTX1200

詳細

HTTPアップロード機能では、ヤマハルーターのconfigとSYSLOGをHTTPサーバーにアップロードできます。configはshow configコマンドまたは show config Nコマンド、SYSLOGはshow logコマンドの実行結果が【テキスト形式のファイル】として保存されます。保存したファイルの先頭には、実行したコマンド名が表示されます。

  表示例:

  [config.txt]
  show config 1
  #10 1 01 0
  console info on
  :

  [log.txt]
  show log
  2008/11/13 13:21:05: [IPv6] start DAD for fe80::2a0:deff:fe40:b798
  2008/11/13 13:21:05: [IPv6] start DAD for fe80::2a0:deff:fe40:b799
  2008/11/13 13:21:05: LANC1: PORT1 link changed (100BASE-TX Full Duplex)
  :

HTTPアップロードを実行したルーターでは、アップロードの成否に応じて以下のログを出力します。

○アップロードに成功した時
  # http upload go
  #
 (INFOレベルで出力します)
    [HTTP UPLD] Success to upload "(http uploadコマンドの保存ファイル名)"
○アップロードに失敗した時
  # http upload go
  エラー: HTTPのヘッダエラーです
  #
 (DEBUGレベルで出力します)
    [HTTPC] HTTP Header Error(HTTP/1.1 501)

 (INFOレベルで出力します)
    [HTTP UPLD] Fail to upload "(http uploadコマンドの保存ファイル名)"

  # http upload go
  エラー: 指定URLのファイルが見つかりませんでした
  #
 (DEBUGレベルで出力します)
    [HTTPC] HTTP Header Error(HTTP/1.1 404)

 (INFOレベルで出力します)
    [HTTP_UPLD] Fail to upload "(http uploadコマンドの保存ファイル名)"
○存在しないconfigをアップロードした時
  # http upload go
  エラー: アップロードするコマンドの実行に失敗しました
  #
 (INFOレベルで出力します)
    [HTTP_UPLD] Fail to execute "show config 4"
    [HTTP UPLD] Fail to upload "(http uploadコマンドの保存ファイル名)"
○アップロード失敗後にリトライする時
 (INFOレベルで出力します)
    [HTTP_UPLD] Retry upload (count = 9)
    [HTTP UPLD] Fail to upload "(http uploadコマンドの保存ファイル名)"
    [HTTP_UPLD] Retry upload (count = 8)
    [HTTP UPLD] Fail to upload "(http uploadコマンドの保存ファイル名)"
    [HTTP_UPLD] Retry upload (count = 7)
    [HTTP UPLD] Fail to upload "(http uploadコマンドの保存ファイル名)"
    ...

alarm http uploadコマンドが'on'の場合には、アップロードの成否に応じてアラーム音を鳴らします。

 エラー  ピピピ
 リトライ含めてエラー終了  ブー
 アップロードに成功  ピポ

http upload goコマンドはschedule atコマンドで指定することができ、startupを指定して起動時に実行させることもできます。

アップロードに失敗した場合にはリトライを行います。リトライする間隔や回数は、http upload retry intervalコマンドで設定することができます。
例えば、schedule atコマンドでstartupを指定した場合、起動直後はHTTPサーバーへの経路が確立していないため、アップロードに失敗することがあります。このような場合にはリトライすることで対応できるようになります。


HTTPサーバーへのファイルのアップロードは、cgiのフォームの仕組みで使用するパケットを、ヤマハルーターから送信することで実現します。そのため、HTTPサーバー側ではcgiを実行できるようにする必要があり、スクリプト(サンプル)によりcgiを処理させることで、ヤマハルーターからのファイルをアップロードできるようにします。

http upload configまたはhttp upload logコマンドの出力先ファイル名にディレクトリを指定して、そのディレクトリ内にconfigファイルやlogファイルを格納することができます。CGIの実行ディレクトリ上に、指定したディレクトリ名のディレクトリを作成します。
HTTPサーバーに複数のヤマハルーターからの情報が集まる場合、ディレクトリ名やファイル名を分けることで、どの機器からの情報かを識別できるようになります。

  [CGI実行ディレクトリ]
    |
    +-- ["RTX1_savedir1"アドレス]
    |     |
    |     +-- config.txt
    |     +-- log.txt
    |
    +-- ["RTX2_savedir1"ディレクトリ]
    |     |
    |     +-- ["savedir2"ディレクトリ]
    |           |
    |           +-- config.txt
    |           +-- log.txt
    |
    :

ディレクトリの階層の数は最大で5階層まで指定することができ、'/'で階層を区切ります(例:http upload config dir1/dir2/dir3/dir4/dir5/config.txt)。
ファイル名とディレクトリ名は32文字までとし、使用できる文字は半角英数字+記号('\'、'/'、'*'、'?'、'"'、'<'、'>'、'|' を除く)です。また、'-'、'.'から始まる名前も指定することができません。

HTTPサーバーのOSの種類には依存しません(Windows、UNIX、etc.)が、UNIX上のHTTPサーバーを使用する場合、CGIスクリプトが実行されるユーザー権限と同じ権限のファイルが生成されます。
よって、CGIスクリプトがnobodyユーザー権限で実行される場合は、生成されるファイルもnobodyユーザー権限となります。


コマンド


[EOF]