# 運用・管理 / ファイル操作

本製品におけるファイルの操作方法について説明します。

## ローカルファイル

本製品の記憶デバイス上に存在するファイルを「ローカルファイル」と呼びます。
本製品では、物理的な記憶デバイス上にファイルシステムが構築されており、各種デバイス上のデータを「ファイル」として統一的にアクセスすることが可能です。
本製品のファイルシステムは、UNIXやMS-DOS/Windowsとよく似た階層型のファイルシステムです。ディレクトリー区切りがスラッシュ（/）である点や、パス名の大文字小文字を区別する点はUNIXに準じていますが、デバイスごとにルートディレクトリーを持つ点はMS-DOS/Windowsに似ています。

### デバイス

本製品は、システム再起動後もデータが保持される記憶デバイスとして、フラッシュメモリーを搭載しています。また、取り外し可能な外部記憶装置として、SDHCカードにも対応しています。それぞれの特長は次のとおりです。

表 1
名称 | デバイス名 | 説明
フラッシュメモリー | flash | 電源を切っても情報が保持される比較的大容量の記憶装置。起動用のファームウェアイメージファイルや設定スクリプトファイルなどを保存するために使う。また、例外発生時（プロセスが異常終了したとき）に生成されるコアダンプファイル（*.tgz）や永続ログ（permanentログ）もフラッシュメモリーに保存される。一般的なコンピューターのハードディスクに相当する
SDHCカード | card | 電源を切っても情報が保持される着脱可能な記憶装置。ファームウェアイメージファイルや設定スクリプトファイルの持ち運び、バックアップ、インストールなどに使う。サポートするファイルシステム（フォーマット）はFAT32、ext2、ext3、ext4。ただし起動用ファームウェアを置く場合はFAT32のみサポート

Note

フラッシュメモリーの空き容量が8MByte以下の場合、NSMプロセス異常終了時のコアダンプファイル（*.tgz）が正しく保存されません。コアダンプファイルを正しく保存するには10MByte以上の空き容量を確保して運用するようにしてください。フラッシュメモリーの空き容量を確認するにはshow file systemsコマンドを、不要なファイルを削除するにはdeleteコマンドを使います。また、例外の発生日時や対象プロセスは、show exception logコマンドで確認できます。

Note

SDHCカード上のイメージファイルを起動用ファームウェアに指定するには、FAT32でフォーマットされている必要があります。ご使用の際には、お客様の使用環境で事前に検証を行った上で導入してください。

Note

SDHCメモリーカードを使用する場合はお客様の使用環境で事前に検証を行った上で導入してください。

Note

機器に装着している外部メディア（SDHCカード）を抜き、再度機器に装着した時、以下のログが出ます。

- 抜いた時

      kernel: FAT-fs (sda1): unable to read boot sector to mark fs as dirty

- 装着した時

      kernel: FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

また、機器に装着している外部メディアを抜き、PCに装着すると、PC上で「スキャンして修復しますか？」というメッセージが出ますが、ログのみの問題で、ファイルの破損はありません。
これらのデバイス上にはファイルシステムが構築されており、ファイル単位でデータにアクセスすることが可能です。

### ファイルとディレクトリー

各デバイス上のファイルシステムは、ファイルとディレクトリーから構成されています。ファイルはプログラムやテキストなど具体的なデータを格納する入れ物であり、ディレクトリーは他のファイルやディレクトリーを整理するための入れ物です。
ファイル名、ディレクトリー名の命名規則は一般的なUNIXファイルシステムに準じています。以下におもな特長を列挙します。大文字小文字を区別する点には特にご注意ください。

- 大文字小文字を区別する
  たとえば、test.cfg、Test.cfg、test.CFGは、それぞれ別のファイルになります。
  Note

  FAT32フォーマットのSDHCカードでは、ファイル名、ディレクトリー名の大文字小文字が区別されません（ext2、ext3、ext4フォーマットでは区別されます）。フラッシュメモリーとFAT32でフォーマットされたSDHCカードの間でファイルをコピーするときは、ファイル名の大文字小文字に注意してください。特にコピー元がフラッシュメモリーのときは、フラッシュメモリー上では異なるファイルとして扱われる複数のファイル（たとえば、test.cfgとTEST.cfg）が、コピー先では同じファイルとして扱われる可能性があるため、意図しないファイルをあやまって上書きしないよう注意してください。

- さまざまな文字を使用可能
  ただし、日本語文字と下記の記号は使用できません。

  `空白 ! " # $ % & ' ( ) * + , / ; < = > ? [ \ ] ^ ` { | }
  `
  実運用上は、半角英数字と一部記号（ハイフン、アンダースコアなど）だけを使用することをおすすめします。
- ファイル名の最大長は約250文字（254文字）
  ただし、あまり長い名前を付けると入力が手間がかかるので（CLIにファイル名の補完機能はありません）、実運用上は16文字程度にすることをおすすめします。
- ファイル名の形式は自由
  ファイル名は一般的にベース名と拡張子をドット（.）で区切った形式としますが、ドットは複数あっても、まったくなくてもかまいません。たとえば、basename.txt、basename.ex1.ex2、basename-onlyはいずれも有効な名前です。
  ただし、一部のファイルについては特定の拡張子を前提としています。次におもな例を挙げます。

  表 2
  拡張子 | ファイルの種類
  rel | ファームウェアのイメージファイル
  cfg | コンフィグファイル。設定を保存するだけであれば.cfgでなくてもよいが、boot config-fileコマンドで指定する起動時コンフィグ（スタートアップコンフィグ）の実体ファイルなどの場合は.cfgでなくてはならない
  scp | スクリプトファイル。おもにトリガーから起動する
  core | コアダンプファイル。例外発生時（プロセスが異常終了したとき）に自動生成されるファイルはこの拡張子を持つ

  また、以下の名前は予約されているため、ファイル名としては使用できません。
  - flash
  - card
  - tftp
  - http
  - scp
  - sftp
- ドットファイル（隠しファイル）
  名前の先頭にドット（.）が付いているファイルやディレクトリーは、「隠し属性」を持つものとして扱われます（ドットファイル）。ディレクトリー内容を表示するdirコマンドでは、allオプションを指定しないかぎり、隠し属性を持つファイルやディレクトリーは表示されません。
- 「.」と「..」
  各ディレクトリーには、特殊な隠しディレクトリー「.」（ドット）と「..」（ドットドット）が暗黙のうちに存在しています。「.」はカレントディレクトリーを、「..」は親ディレクトリー（1階層上のディレクトリー）を表します。ただし、最上位のルートディレクトリーでは「..」と「.」は同じ意味になります。
- ディレクトリーもファイルの一種
  ディレクトリーは、ファイルやディレクトリーを整理するという特殊な役割を持ちますがファイルの一種には変わりありません。したがって、ファイルとディレクトリーにはまったく同じ命名規則が適用されます。

### ローカルパス表記

ローカルファイルシステム上のファイルやディレクトリーは、「ローカルパス」（パス）を使って表します。パスの表記には、大きく分けて次の3つの形式があります。

表 3
`DEVICE:/PATH` | デバイス名を含む絶対パス | 指定したデバイス（DEVICE）のルートディレクトリー（/）を起点とした、あいまいさのまったくない厳密なパス表記です。この形式を使えば、カレントディレクトリーがどこであるかにかかわらず、ファイルやディレクトリーを一意に識別できます
`/PATH` | デバイス名を含まない絶対パス | カレントディレクトリーの存在するデバイス（以下、カレントデバイスと呼びます）のルートディレクトリー（/）を起点としたパス表記です。同じ表記であっても、カレントデバイスがどこであるかによって、指し示されるファイルやディレクトリーが異なります
`PATH` | 相対パス | カレントディレクトリーを起点としたパス表記です。同じ表記であっても、カレントディレクトリーがどこであるかによって、指し示されるファイルやディレクトリーが異なります

ここで、`DEVICE`は、前述した記憶デバイスの名前です。具体的には`flash`、`card`の2種類があります。
また、`PATH`は、各デバイス上におけるファイルやディレクトリーのパス名です。
パス名は0個以上のパス要素（ファイル名かディレクトリー名）をスラッシュ（/）で区切って連結したものです。パス名の最後の要素はファイル名かディレクトリー名、それ以外の要素は必ずディレクトリー名になります（例：「/DIR1/DIR2/FILE3」、「DIR4/DIR5」）。
先頭にスラッシュ（/）を付けた場合はルートディレクトリーからの絶対パス、そうでない場合はカレントディレクトリーからの相対パスと解釈されます。
以下では、各表記について具体例を挙げながら説明します。

#### デバイス名を含む絶対パス

次の表記は、フラッシュメモリー上の絶対パス/bkup/070628.cfgを表します。

`flash:/bkup/070628.cfg
`

ここで、bkupがディレクトリーであることは間違いありませんが、070628.cfgがファイルであるかディレクトリーであるかは、名前からは判別できません。これを確認するには、該当要素（ここでは070628.cfg）の存在するディレクトリー（ここではflash:/bkup）に対してdirコマンドを実行してみます。

    awplus# dir flash:/bkup
          312 -rw- Feb 28 2011 06:43:19  070628.cfg

ここでは、ファイル属性を表す「-rw-」欄の先頭文字が「-」なのでファイルと判断できます。同欄の先頭文字が「d」ならディレクトリーです（例「drwx」）。
なお、デバイス名の後には暗黙のうちにスラッシュ（/）が付加されます。すなわち、デバイス名から始まるパス表記は、つねに指定したデバイスのルートディレクトリー（/）を起点とする絶対パスとして扱われます。
たとえば、次のパス表記では、`PATH`要素（bkup/ipbasic.cfg）の先頭にスラッシュがありません。そのため、一見したところ相対パスであるような印象を受けます。

`flash:bkup/ipbasic.cfg
`

しかし、デバイス名flash:の後には暗黙のスラッシュが仮定されるため、実際には次の表記と同じ扱いを受けます。

`flash:/bkup/ipbasic.cfg
`

さらに、デバイス名を単独で表記する場合はコロンを省略することもできますので、次の3つの表記も等価となります（フラッシュメモリー上のルートディレクトリーを指す）。

`flash
flash:
flash:/
`

#### デバイス名を含まない絶対パス

次の表記は、カレントデバイス上の絶対パス/log/messagesを表します。

`/log/messages
`

これは、カレントデバイスがflashなら「flash:/log/messages」、cardなら「card:/log/messages」を指し示します。
カレントデバイスとは、カレントディレクトリーの存在しているデバイスのことです（カレントディレクトリーはpwdコマンドで確認できます）。

#### 相対パス

パス要素を1つだけ指定した次の表記は、相対パスのもっとも簡略な形式で、カレントディレクトリーに存在する指定した名前のファイルかディレクトリーを示します。

`file_or_directory
`

次の表記は、カレントディレクトリーを起点とした相対パスtemp2/mynetwork.logを表します。

`temp2/mynetwork.log
`

pwdコマンドで表示されるカレントディレクトリーが「flash:/temp」であるなら、この表記は「flash:/temp/temp2/mynetwork.log」を表します。
次の表記は、カレントディレクトリーを起点とした相対パス../../mylan.cfgを表しています。「..」は前述のとおり、各ディレクトリーに存在する特殊な隠しディレクトリーで、「1階層上のディレクトリー」を示します。したがって、../..は2階層上のディレクトリーを表します。

`../../mylan.cfg
`

pwdコマンドで表示されるカレントディレクトリーが「flash:/home/zein」であるなら、この表記は「flash:/mylan.cfg」を表します。

### ワイルドカード

deleteコマンドとdirコマンドでは、ローカルファイルのパス指定時に特殊文字の「*」（アスタリスク）を使うことで、複数のファイルを一度に指定することができます。これをワイルドカード指定と呼びます。
これらのコマンドにおいて、アスタリスクはパス表記内での任意の文字列（空文字列を含む）を表します。
Note

デバイス名にワイルドカードを使うことはできません。

Note

ワイルドカードは、ピリオドで始まる隠しファイルや隠しディレクトリーの名前にはマッチしません。隠しファイルや隠しディレクトリーの名前にマッチさせるには、「.*」のようにしてピリオドを明示的に指定してください。

以下に例を示します。
次の表記は、カレントディレクトリーにあるすべてのファイル、ディレクトリーを表します（隠しファイルと隠しディレクトリーは除く。以下同様）。

`*
`

次の表記は、カレントディレクトリーにある拡張子「.cfg」のファイル、ディレクトリーを表します。

`*.cfg
`

次の表記は、フラッシュメモリーのルートディレクトリーにあるファイル、ディレクトリーのうち、先頭文字が「ABC」、その後に任意の文字列（空文字列も可）が続き、「5」が来た後にまた任意の文字列、さらにドットが来て、さらに任意の文字列が来て、最後に「t」が来るものを表します。具体的には「ABC-123456789.txt」や「ABC12345.t」、「ABC01A5AA.1rt」などが当てはまります。

`flash:/ABC*5*.*t
`

次の表記は、1階層上のディレクトリーにある拡張子「.txt」を持つすべてのファイル、ディレクトリーを表します。

`../*.txt
`

### ローカルディレクトリーの操作

おもなディレクトリー操作についてコマンド例を示します。
Note

ファイルシステムの操作は基本的に特権EXECモードで行います。

カレントディレクトリーを確認するには、pwdコマンドを使います。
ログイン直後のカレントディレクトリーはフラッシュメモリーのルートディレクトリー（flash:/）です。

    awplus# pwd
    flash:/

カレントディレクトリーを移動するには、cdコマンドを使います。

    awplus# cd home/zein
    awplus# pwd
    flash:/home/zein

    awplus# cd ..
    awplus# pwd
    flash:/home

    awplus# cd flash:/log
    awplus# pwd
    flash:/log

    awplus# cd flash:/
    awplus# pwd
    flash:/

Note

外部メディア（SDHCカード）を抜く前には、必ずcdコマンドでカレントディレクトリーを外部メディア以外のデバイスに移動してください。カレントディレクトリーが外部メディア上にある状態で、外部メディアを抜き、その後外部メディアを挿しなおすと、本製品が外部メディアを認識しないことがあります。その場合は、カレントディレクトリーを外部メディア以外に移動し（例：cd flash:/）、その後外部メディアを抜き挿ししてください。

ディレクトリーを作成するにはmkdirコマンドを使います。

    awplus# mkdir tmp
    Successful operation

ディレクトリーを移動するにはmoveコマンドを使います。

    awplus# move tmp work
    Moving..
    Successful operation

moveコマンドはディレクトリー名を変更（リネーム）するときにも使います。

    awplus# move work work2
    Moving..
    Successful operation

ディレクトリーを削除するにはrmdirコマンドを使います。

    awplus# rmdir unused
    Successful operation

ただし、rmdirコマンドでは、空でないディレクトリーを指定した場合はエラーになります。このようなときは、deleteコマンドでディレクトリー内のファイル、サブディレクトリーをすべて削除してから、もう一度rmdirコマンドを実行する必要があります。
あるいは、deleteコマンドをrecursiveオプション付きで実行すれば、指定したディレクトリー以下を一括削除できます。

    awplus# delete recursive work2
    Delete flash:/work2 and all of its contents? (y/n)[n]:y  ↓
    Deleting..
    Successful operation

Note

「flash:/log」ディレクトリーには永続ログ（permanentログ）が保存されているため、誤って削除しないようご注意ください。

### ローカルファイルの操作

おもなファイル操作についてコマンド例を示します。
Note

ファイルシステムの操作は基本的に特権EXECモードで行います。

カレントディレクトリーのファイルとサブディレクトリーの一覧は、dirコマンドで表示できます。

    awplus# dir
     20593063 -rwx Jan  7 2013 00:46:55  IE210-5.5.6-0.1.rel
          594 -rw- Feb 26 2011 04:58:03  snmpv1.cfg
          564 -rw- Feb 26 2011 04:57:28  basicip.cfg
          472 -rw- Feb 26 2011 04:57:10  basicvlan.cfg
          312 -rw- Feb 26 2011 04:56:41  default.cfg

特定ファイルの一覧を見たいときはワイルドカードを使います。

    awplus# dir *.cfg
          594 -rw- Feb 26 2011 04:58:03  flash:/snmpv1.cfg
          564 -rw- Feb 26 2011 04:57:28  flash:/basicip.cfg
          472 -rw- Feb 26 2011 04:57:10  flash:/basicvlan.cfg
          312 -rw- Feb 26 2011 04:56:41  flash:/default.cfg

ファイルの内容を見るには、show fileコマンドを使います。ただし、show fileコマンドで見ることができるのはテキスト形式のファイル（.txt、.log、.cfgなど）だけです。

    awplus# show file snmpv1.cfg | include ip
    ip domain-lookup
    no ip multicast-routing
     ip address 172.16.10.1/24
     ip address 172.21.10.1/24

ファイルを削除するにはdeleteコマンドを使います。ワイルドカード指定で複数ファイルをまとめて消すことも可能です。

    awplus# del *.core
    Delete flash:nsm-xxxxxxxxxxx-X.Y.Z-1180494447.core? (y/n)[n]:y ↓
    Deleting..
    Delete flash:nsm-xxxxxxxxxxx-X.Y.Z-1180496473.core? (y/n)[n]:y ↓
    Deleting..
    Delete flash:nsm-xxxxxxxxxxx-X.Y.Z-1180504045.core? (y/n)[n]:y ↓
    Deleting..
    Delete flash:nsm-xxxxxxxxxxx-X.Y.Z-1180917976.core? (y/n)[n]:y ↓
    Deleting..
    Successful operation

Note

deleteコマンドでファイルを削除するときは、対象ファイル1つ1つに対して、本当に削除してよいかを確認してきますが、必要なファイルまで削除してしまわないよう充分にご注意ください。

Note

削除したファイルを元に戻すことはできません。ファイル操作時は充分注意を払ってください。

Note

「flash:/log」ディレクトリーには永続ログ（permanentログ）が保存されているため、誤って削除しないようご注意ください。

ファイルをコピーするにはcopyコマンドを使います。

    awplus# copy basicip.cfg basicip-backup.cfg

ファイルを移動するにはmoveコマンドを使います。

    awplus# move fuga.txt /home/zein/doc
    Moving..
    Successful operation

moveコマンドはファイル名を変更（リネーム）するときにも使います。

    awplus# move pote.txt bote.txt
    Moving..
    Successful operation

テキスト形式のファイルを編集するには、editコマンド（内蔵フルスクリーンテキストエディター）を使います。

    awplus# edit myscript.cfg

### AMFネットワークにおけるファイル操作

AMFネットワークでは、特殊な記法により他のAMFノードのファイルシステムを操作できます。詳しくは「AMF」の応用編をご覧ください。

## リモートファイル

本製品の記憶デバイス上に存在する「ローカルファイル」に対し、ネットワーク上の他のホストに存在するファイルを「リモートファイル」と呼びます。
本製品では、各種ファイル操作コマンドにおいて、リモートファイルをローカルファイルとほぼ同様に扱うことができます。

### リモートURL表記

本製品では、リモートファイルおよびディレクトリーの場所を、次に示す「リモートURL」（URL）形式で表します。
Note

ローカルファイルを表すときに使用するパス（特に「デバイス名を含む絶対パス」）もURLの一種と考えることができますが、本マニュアルではリモートファイルを表す表記形式を「（リモート）URL」、ローカルファイルを表す表記形式を「（ローカル）パス」と呼んで区別することにします。

- HTTPサーバー上のファイルおよびディレクトリー

  `http://HOST/PATH`

- TFTPサーバー上のファイルおよびディレクトリー

  `tftp://HOST/PATH`

- SCP(SSH)サーバー上のファイルおよびディレクトリー

  `scp://USER@HOST/PATH`

- SFTP(SSH)サーバー上のファイルおよびディレクトリー

  `sftp://USER@HOST/PATH`

ここで、`http`、`tftp`、`scp`、`sftp`は、リモートファイルにアクセスするための方式（プロトコル）を表します。
`HOST`は、リモートホストのIPアドレス（IPv4/IPv6）またはホスト名です。
Note

IPv4とIPv6の両方に対応しているのはSCPとSFTPだけです。TFTPとHTTPはIPv4のみの対応です。

Note

URL中にIPv6アドレスを記述するときは、アドレス全体をスクエアブラケット（[ ]）で囲んでください（例：「scp://manager@[2001:db8:3:10::3]/backup.cfg」）。

Note

リモートホストをIPアドレス（IPv4/IPv6）ではなくドメイン名で指定するためには、あらかじめip name-serverコマンドでDNSサーバーの設定をしておき（初期状態では未設定）、ip domain-lookupコマンドでDNSへの問い合わせ機能を有効にしておく必要があります（初期状態で有効）。なお、指定したホスト名が複数のアドレスに解決された場合（IPv4アドレスとIPv6アドレスの両方が返ってきた場合や、複数のIPv4アドレスあるいは複数のIPv6アドレスが返ってきた場合など）は、成功するまで各アドレスを順に使って接続を試行しますが、その順序は不定です。

`PATH`は、リモートホスト上におけるファイルやディレクトリーのパスです。パスの表記形式や意味合いは、使用するアクセス方式（プロトコル）やリモートホストの設定によって異なります。
`USER`は、リモートホストにログインするためのユーザー名です。ログインを必要とするアクセス方式（プロトコル）でのみ有効です。

### リモートファイルの操作

以下では、リモートファイルを操作する具体的なコマンド例を示します。
Note

ファイルシステムの操作は基本的に特権EXECモードで行います。

カレントディレクトリーにあるbasic.cfgをTFTPサーバーhiyoko.example.comにアップロードし、同サーバー上のファイルbasic.cfgとして保存する（バックアップする）には次のようにします。

    awplus# copy basic.cfg tftp://hiyoko.example.com/basic.cfg
    Copying..
    Successful operation

TFTPによるファイルダウンロードを対話式に行うには、コピー元に「tftp」、コピー先に「flash」とだけ指定します。

    awplus# copy tftp flash
    Enter source host name []:172.17.28.70 ↓ （TFTPサーバー）
    Enter source file name []:IE210-5.5.6-0.1.rel ↓ （ダウンロード対象ファイル）
    Enter destination file name [IE210-5.5.6-0.1.rel]: ↓ （ダウンロード後ファイル名。カッコ内の名前でよければ単にEnter）
    Copying........................................
    Successful operation

TFTPによるファイルアップロードを対話式に行うには、コピー先に「tftp」とだけ指定します。以下の例ではコピー元ファイル名を明示していますが、単に「flash」などと指定すればコピー元ファイルのパスも対話式に入力できます。

    awplus# copy test2345.cfg tftp
    Enter destination host name []:172.17.28.70 ↓ （TFTPサーバー）
    Enter destination file name [test2345.cfg]: ↓ （アップロード後ファイル名。カッコ内の名前でよければ単にEnter）
    Copying..
    Successful operation

HTTPサーバーwww.example.com上のファイル/~zein/work/myconfig.cfgをダウンロードし、カレントディレクトリーのファイルmyconfig.cfgとして保存するには次のようにします。

    awplus# copy http://www.example.com/~zein/work/myconfig.cfg myconfig.cfg
    Copying..
    Successful operation

HTTPによるファイルダウンロードを対話的に行うには、コピー元に「http」、コピー先に「flash」とだけ指定します。

    awplus# copy http flash
    Enter source host name []:172.17.28.70 ↓ （HTTPサーバー）
    Enter source file name []:~zein/work/weekly.txt ↓ （ダウンロード対象ファイル）
    Enter destination file name [weekly.txt]: ↓ （ダウンロード後ファイル名。カッコ内の名前でよければ単にEnter）
    Copying..
    Successful operation

SCPによるファイルダウンロードを対話式に行うには、コピー元に「scp」、コピー先に「flash」とだけ指定します。

    awplus# copy scp flash
    Enter source host name []:zein@172.17.28.1 ↓ （SCP（SSH）サーバー。通常は「ユーザー名@」を前置する）
    Enter source file name []:tmp/test3456.cfg ↓ （ダウンロード対象ファイル）
    Enter destination file name [test3456.cfg]: ↓ （ダウンロード後ファイル名。カッコ内の名前でよければ単にEnter）
    Password:XXXXXXXX ↓ （SSHサーバーにログインするためのパスワード。実際には表示されません）
    Copying..
    Successful operation

SCPによるファイルアップロードを対話式に行うには、コピー先に「scp」とだけ指定します。以下の例ではコピー元ファイル名を明示していますが、単に「flash」などと指定すればコピー元ファイルのパスも対話式に入力できます。

    awplus# copy test4567.cfg scp
    Enter destination host name []:zein@172.17.28.1 ↓ （SCP（SSH）サーバー。通常は「ユーザー名@」を前置する）
    Enter destination file name [test4567.cfg]: ↓ （アップロード後ファイル名。カッコ内の名前でよければ単にEnter）
    Copying..
    Successful operation

SSHサーバー上のファイルwww/work/myconfig.cfgをSSHのサブアプリケーションであるSFTP（Secure FTP）経由で取得し、フラッシュメモリーのルートディレクトリーにmyconfig2.cfgとして保存するには次のようにします。ここでは、ログイン時のユーザー名としてはzeinを使用しています。

    awplus# copy sftp://zein@www.example.com/www/work/myconfig.cfg flash:/myconfig2.cfg
    Password:XXXXXX ↓ （SSHサーバーにログインするためのパスワード。実際には表示されません）
    Copying..
    Successful operation

SFTPによるファイルダウンロードを対話式に行うには、コピー元に「sftp」、コピー先に「flash」とだけ指定します。

    awplus# copy sftp flash
    Enter source host name []:zein@172.17.28.1 ↓ （SFTP（SSH）サーバー。通常は「ユーザー名@」を前置する）
    Enter source file name []:tmp/test5678.cfg ↓ （ダウンロード対象ファイル）
    Enter destination file name [test5678.cfg]: ↓ （ダウンロード後ファイル名。カッコ内の名前でよければ単にEnter）
    Password:XXXXXXXX ↓ （SSHサーバーにログインするためのパスワード。実際には表示されません）
    Copying..
    Successful operation

## ZMODEMによるファイル転送

copyコマンドでは、通信ソフトウェア（端末エミュレーター）経由でファイル転送を行うこともできます。
ファイル転送プロトコルとしては、ZMODEMを使用します。
この方式では、SSHのような仮想端末接続時だけでなく、コンソールポート経由でもファイルを転送することが可能です。
Note

通信ソフトウェアがZMODEMに対応している必要があります。

Note

ファイルシステムの操作は基本的に特権EXECモードで行います。

カレントディレクトリーにあるファイルmyconfig2.cfgを通信ソフトウェア経由で送信するには次のようにします。

    awplus# copy myconfig2.cfg zmodem
    **B00000000000000
    （通信ソフトウェア側でZMODEMによるファイル受信の操作を行う）

通信ソフトウェア経由でファイルを受信し、カレントディレクトリーに保存するには次のようにします。保存時の名前にはZMODEMで通知されたものが使われます。

    awplus# copy zmodem
    rz waiting to receive.**B0100000023be50
    （通信ソフトウェア側でZMODEMによるファイル送信の操作を行う）