copy

モード: 特権EXECモード
カテゴリー: 運用・管理 / ファイル操作


# copy SOURCE DESTINATION [OPTION]


ファイルをコピーする。
ローカルファイルシステム上でのコピーだけでなく、ネットワーク経由のリモートコピー(アップロードやダウンロード)やコンソールポート経由のファイル転送も可能。

本コマンドではさまざまな書式を使用できるが、基本パターンは次のとおり。

  1. 通常ファイルをコピーするためのもっとも一般的な書式
    コピー元とコピー先は、ローカルファイルシステム上のファイルでも、リモートホスト上のファイルでもよい。

    copy REGULARSRC REGULARDST


  2. 設定の保存や復元に使用する特殊な書式


  3. 現在実行中のファームウェアイメージを通常ファイルにコピーするための書式。ファームウェアのバックアップに用いる(この書式を用いず、1の書式でイメージファイルを直接指定してもかまわない)。

    copy current-software REGULARDST


  4. ローカルRADIUSサーバーのユーザーデータを登録・書き出し・読み込みするための書式


  5. ZMODEMプロトコルを用いてコンソールポート経由のファイル転送を行うための書式

  6. 本体に保存されるログ(bufferedログとpermanentログ)を任意のファイルにコピーするための書式

    copy buffered-log REGULARDST

    copy permanent-log REGULARDST


パラメーター

SOURCE コピー元(読み出し元)ファイルのパス。次のような指定が可能
REGULARSRC 通常ファイル。大きく分けて次の2種類がある
  LOCALSRC ローカルファイルのパス。もっとも簡略な指定方法として、「flash」、「nvs」、「usb」、「card」のようにデバイス名だけを指定することもできる。この場合は、指定したデバイス上のパスを対話式にたずねてくる
  REMOTESRC リモートファイルのURL。リモートコンピューター上のファイルをネットワーク経由で転送する場合はこの形式で指定する。プロトコルとしては、TFTP、HTTP、SCP、SFTPを使用可能。もっとも簡略な指定方法として、「tftp」、「http」、「scp」、「sftp」のようにスキーム(プロトコル)だけを指定することもできる。この場合は、ホスト名やファイル名を対話式にたずねてくる。また、通常のURLを指定した場合であっても、足りない情報があるときは対話式にたずねてくる。なお、HTTPはIPv4にのみ対応。TFTP、SCP、SFTPはIPv4とIPv6の両方に対応している
zmodem コンソールポート経由でファイルを受信する場合に指定する(転送プロトコルはZMODEM)。このとき、第2引数(DESTINATION)は指定できず、受信したファイルはZMODEMプロトコルで通知された名前で保存される
running-config ランタイムメモリー上にある現在の設定内容(ランニングコンフィグ)を示す特殊な指定
startup-config 起動時コンフィグ(スタートアップコンフィグ)を示す特殊な指定。スタートアップコンフィグの実体ファイルはshow bootコマンドで確認でき、boot config-fileコマンドで変更できる
current-software 現在実行中のファームウェアイメージを示す特殊な指定
fdb-radius-users フォワーディングデータベース(FDB)に登録されているMACアドレスを示す特殊な指定。FDB内のMACアドレスを、MACベース認証用のユーザーデータとして、ローカルRADIUSサーバーに登録したり(第2引数にlocal-radius-user-dbを指定)、第2引数(DESTINATION)で指定したCSV(カンマ区切り)テキストファイルに書き出したいときに指定する。この場合、オプションの第3引数(OPTION1)で登録するMACアドレスを絞り込んだり、割り当てるユーザーグループを指定したりできる
local-radius-user-db ローカルRADIUSサーバーのユーザーデータを示す特殊な指定。ユーザーデータを第2引数(DESTINATION)で指定したCSV(カンマ区切り)テキストファイルに書き出したいときに指定する
buffered-log bufferedログ(ランタイムメモリーに保存されている一時ログ)を表す特殊な指定
permanent-log permanentログ(フラッシュメモリーに保存されている永続ログ)を表す特殊な指定
DESTINATION コピー先(書き込み先)ファイルまたはディレクトリーのパス。第一引数(SOURCE)がzmodemの場合は指定できない。基本的な指定方法は第一引数(SOURCE)と同じ。ディレクトリーを指定した場合は、保存時のファイル名を対話式にたずねてくる
REGULARDST 通常ファイルまたはディレクトリー。大きく分けて次の2種類がある
  LOCALDST ローカルファイルまたはディレクトリーのパス。もっとも簡略な指定方法として、「flash」、「nvs」、「usb」、「card」のようにデバイス名だけを指定することもできる。この場合は、指定したデバイス上のパスを対話式にたずねてくる
  REMOTEDST リモートファイルまたはディレクトリーのURL。第1引数(SOURCE)で指定したファイルをネットワーク経由でリモートコンピューターに転送する場合はこの形式で指定する。転送プロトコルとしては、TFTP、SCPを使用可能。もっとも簡略な指定方法として、「tftp」、「scp」のようにスキーム(プロトコル)だけを指定することもできる。この場合は、ホスト名やファイル名を対話式にたずねてくる。また、通常のURLを指定した場合であっても、足りない情報があるときは対話式にたずねてくる。なお、TFTP、SCPはIPv4とIPv6の両方に対応している
zmodem 第1引数(SOURCE)で指定したファイルをコンソールポート経由で送信する場合に指定する(転送プロトコルはZMODEM)
startup-config 起動時コンフィグ(スタートアップコンフィグ)を示す特殊な指定。スタートアップコンフィグの実体ファイルはshow bootコマンドで確認でき、boot config-fileコマンドで変更できる。なお、コピー元にrunning-configを指定した場合を除いて、本コマンドで既存のスタートアップコンフィグを上書きすることはできない。スタートアップコンフィグの内容を変更する場合は、あらかじめerase startup-configコマンドでスタートアップコンフィグを消去しておくこと
local-radius-user-db ローカルRADIUSサーバーのユーザーデータを示す特殊な指定。FDB内のMACアドレスを、MACベース認証用のユーザーデータとしてローカルRADIUSサーバーに登録したり(第1引数にfdb-radius-usersを指定)、第1引数(SOURCE)で指定したCSV(カンマ区切り)テキストファイルからユーザーデータを読み込みたいときに指定する。FDB内のMACアドレスを登録するときは、オプションの第3引数(OPTION1)で登録するMACアドレスを絞り込んだり、割り当てるユーザーグループを指定したりできる。また、CSVテキストファイルから読み込むときは、オプションの第3引数(OPTION2)で既存データに読み込んだデータを追加するか、既存データを消去してから新規に読み込むかを選択できる
OPTION1 := [interface IFNAME] [vlan <1-4094>] [group GROUPNAME]
FDB内のMACアドレスをローカルRADIUSサーバーに登録したり、CSVファイルに書き出したりするときの詳細動作を指定する。第1引数(SOURCE)にfdb-radius-usersを指定した場合のみ有効。下記から任意のオプションを指定できる
interface IFNAME 指定したインターフェースで学習されたMACアドレスだけを対象とする。「port1.0.*」のようなワイルドカード指定も可能。省略時はすべてのインターフェースで学習されたMACアドレス(ただし、CPUで学習されたものを除く)が対象となる
vlan <1-4094> 指定したVLAN上で学習されたMACアドレスだけを対象とする。省略時はすべてのVLANで学習されたMACアドレスが対象となる
group GROUPNAME ユーザーに割り当てるユーザーグループ名。groupコマンドで設定した名前を指定する。省略時はユーザーグループを割り当てない
OPTION2 := [add|replace]
ローカルRADIUSサーバーのユーザーデータをCSVファイルから読み込むときの方法。第2引数(DESTINATION)にlocal-radius-user-dbを指定した場合のみ有効。下記から選択する。省略時はreplace
add CSVファイルから読み込んだユーザーデータを、既存のユーザーデータに追加する。CSVファイル内に既存ユーザーと同名のユーザーデータがあった場合は、該当ユーザーの情報をCSVファイル内の情報で上書き更新する。それ以外のユーザーデータは単に追加される
replace インポート前に既存のユーザーデータをすべて消去し、CSVファイル内のユーザーデータで置き換える


使用例

■ カレントディレクトリーにあるファイルtest1.cfgをtest2.cfgとしてコピーする。

awplus# copy test1.cfg test2.cfg

■ 現在の設定内容(ランニングコンフィグ)を起動時コンフィグ(スタートアップコンフィグ)として保存する。これにより、次回起動時に現在の設定内容が復元される。
awplus# copy running-config startup-config

■ 現在の設定内容(ランニングコンフィグ)をカレントディレクトリーのファイルsnmpv3.cfgとして保存する。本コマンドは、現在の設定内容をsnmpv3.cfgに保存するだけで、その内容が次回起動時に読み込まれるよう設定するわけではないことに注意(次の例も参照)。
awplus# copy running-config snmpv3.cfg

■ 起動時コンフィグ(スタートアップコンフィグ)の内容をflash:/basicip.cfgにコピー(バックアップ)する。
awplus# copy startup-config flash:/basicip.cfg

■ カレントディレクトリーにあるファイルsnmpv3.cfgの内容を起動時コンフィグ(スタートアップコンフィグ)にコピーする。これにより、次回起動時にsnmpv3.cfgの内容が復元される。
awplus# erase startup-config
awplus# copy snmpv3.cfg startup-config
Note
「copy REGULARSRC startup-config」の書式では、既存のスタートアップコンフィグを上書きすることはできない。同書式でスタートアップコンフィグの内容を変更する場合は、あらかじめerase startup-configコマンドでスタートアップコンフィグを消去しておくこと。なお、次回のスタートアップコンフィグを変更する方法には、boot config-fileコマンドでスタートアップコンフィグの実体ファイルを切り替える方法もある。コンフィグファイルの管理方針にしたがって適切な方法を選択すること。

■ 現在の設定内容(ランニングコンフィグ)をTFTPサーバーhiyoko.example.comにアップロードし、同サーバー上のファイルrunning.cfgとして保存する(バックアップする)。
awplus# copy running-config tftp://hiyoko.example.com/running.cfg

■ 現在実行中のファームウェアイメージをSSHサーバーhiyoko.example.comにアップロードし、同サーバー上のディレクトリーtmp/に保存する(バックアップする)。転送プロトコルにはSSHのサブアプリケーションであるSCP(Secure CoPy)を使用し、ユーザー名zeinでログインする。コピー先としてディレクトリーを指定した場合は、この例のように保存するときのファイル名をたずねてくる(ここではmyfirm.relというファイル名を指定している)。
awplus# copy current-software scp://zein@hiyoko.example.com/tmp/
Enter destination file name [current-software]:myfirm.rel 
Copying from source file, please wait...
Password:XXXXXX ↓ (実際には表示されません)
Copying to destination file, please wait...
Successful operation
Note
コピー元としてキーワードcurrent-softwareを指定し、コピー先としてディレクトリーを指定した場合、デフォルトの保存先ファイル名として「current-software」が提示されるが、boot systemコマンドで指定する起動ファームウェアのイメージファイルは拡張子が「.rel」でなくてはならないため、この名前のままでは起動用ファームウェアとして指定できないので注意。

■ IPv6対応のSSHサーバー「2001:db8:2:3::4」上のファイルtmp/heavytest.cfgをSSHのサブアプリケーションであるSCP(Secure CoPy)経由で取得し、フラッシュメモリーのルートディレクトリーにtest1000.cfgとして保存する。ログイン時のユーザー名としてはzeinを使用する。
awplus# copy scp://zein@[2001:db8:2:3::4]/tmp/heavytest.cfg flash:/test1000.cfg
Password:XXXXXX ↓ (実際には表示されません)
Copying..
Successful operation
Note
URLのホスト指定部にIPv6アドレスを直接記述するときは、この例のようにスクエアブラケット([ ])で囲む必要があることに注意。

■ HTTPサーバーwww.example.com上のファイル/~zein/work/myconfig.cfgをダウンロードし、カレントディレクトリーのファイルmyconfig.cfgとして保存する。
awplus# copy http://www.example.com/~zein/work/myconfig.cfg myconfig.cfg

■ 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 ↓ (実際には表示されません)
Copying..
Successful operation

■ カレントディレクトリーにあるファイルmyconfig2.cfgをコンソールポート経由で送信する(プロトコルはZMODEM)。
awplus# copy myconfig2.cfg zmodem
**B00000000000000
(通信ソフトウェア側でZMODEMによるファイル受信の操作を行う)

■ ZMODEMプロトコルを用いてコンソールポート経由でファイルを受信し、カレントディレクトリーに保存する。保存時の名前にはZMODEMで通知されたものが使われる。
awplus# copy zmodem
rz waiting to receive.**B0100000023be50
(通信ソフトウェア側でZMODEMによるファイル送信の操作を行う)

■ TFTPによるファイルダウンロードを対話式に行うには、コピー元に「tftp」、コピー先に「flash」とだけ指定する。
awplus# copy tftp flash
Enter source host name []:172.17.28.70 ↓ (TFTPサーバー)
Enter source file name []:test1234.cfg ↓ (ダウンロード対象ファイル)
Enter destination file name [test1234.cfg]: ↓ (ダウンロード後ファイル名。カッコ内の名前でよければ単に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によるファイルダウンロードを対話式に行うには、コピー元に「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 from source file, please wait...
Password:XXXXXXXX ↓ (SSHサーバーにログインするためのパスワード。実際には表示されません)
Copying to destination file, please wait...
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:
Copying..
Successful operation

■ FDBに登録されているMACアドレスを、MACベース認証用のユーザーとしてローカルRADIUSサーバーに登録する。
awplus# copy fdb-radius-users local-radius-user-db

■ FDBに登録されているMACアドレスのうち、ポート1.0.1で学習されたものだけをMACベース認証用のユーザーとしてローカルRADIUSサーバーに登録する。
awplus# copy fdb-radius-users local-radius-user-db interface port1.0.1

■ FDBに登録されているMACアドレスのうち、vlan10上で学習されたものだけをMACベース認証用のユーザーデータとしてカレントディレクトリーのファイルmacauth-users-vlan10.txtに書き出す。
awplus# copy fdb-radius-users macauth-users-vlan10.txt vlan 10

■ ローカルRADIUSサーバーのユーザーデータをカレントディレクトリーのファイルradius-users.txtに書き出す。
awplus# copy local-radius-user-db radius-users.txt

■ カレントディレクトリーにあるCSVファイルradius-users.txtの内容をローカルRADIUSサーバーに読み込む。既存のユーザーデータはCSVファイルの内容で置き換えられる。
awplus# copy radius-users.txt local-radius-user-db

■ カレントディレクトリーにあるCSVファイルadditional-users.txtの内容をローカルRADIUSサーバーのユーザーデータベースに追加する。
awplus# copy additional-users.txt local-radius-user-db add

■ TFTPサーバー2001:db8::2からファイルtftp-test.txtを本体内蔵フラッシュメモリーにダウンロードする。
awplus# copy tftp://2001:db8::2/tftp-test.txt flash

■ TFTPサーバー2001:db8::2にファイルipv6-tftp.cfgをアップロードする。
awplus# copy ipv6-tftp.cfg tftp://2001:db8::2/


注意・補足事項

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

■ コピー先にスタートアップコンフィグ(startup-config)、スタートアップコンフィグの実体ファイル(boot config-fileコマンドで指定したファイル)、あるいは、初期設定の実体ファイル(flash:/default.cfg)を指定して上書きコピーすることはできない。ただし、「copy running-config startup-config」だけは例外で、スタートアップコンフィグの実体ファイルが存在していても、現在のランニングコンフィグの内容で上書きする。

■ ローカルRADIUSサーバーのユーザーデータを登録・読み込みするための書式(local-radius-user-dbキーワードを含むもの)は、ローカルRADIUSサーバーの設定がされていない状態(ランニングコンフィグにradius-server localコマンドがない状態)では無効。また、登録・読み込みされたユーザーデータはランニングコンフィグに反映されるだけなので、再起動後も使いたい場合は設定をスタートアップコンフィグに保存すること。

■ ローカルRADIUSサーバーのユーザーデータを表すCSV(カンマ区切り)テキストファイルの書式については、show radius local-server userコマンドのページを参照。

■ ファイル名、フォルダ名に \ は使用できない。

■ fdb-radius-usersキーワードを使用して書き出したCSVファイルをCentreNET SwimRadiusにインポートする場合は、CSVファイルの各行から最後のフィールドを削除する必要がある。

■ 本コマンドは、複数ノードを対象とするワーキングセットプロンプト(atmf working-set)では実行できない(下記メッセージが出てエラーになる)。1台のノードだけを対象とするワーキングセットプロンプトか、ローカルプロンプトから実行すること。

% Working set must contain only single node for this command
ただし、設定保存用の「copy running-config startup-config」だけは例外的に実行可能。

■ ZMODEMで転送するファイルのサイズは3MByte以下にすること。


■ 外部メディアへのコピー中に外部メディアを抜かないこと。コピー中に外部メディアを抜いた場合、実際はコピーに失敗していても「successful」というメッセージが表示されるため注意。

■ 外部メディアを取り外すときは、事前にunmountコマンドを実行し、未書き込みのデータを書き出してから取りはずすこと。


関連コマンド

cd(特権EXECモード)
dir(特権EXECモード)
group(RADIUSサーバーモード)
ip domain-lookup(グローバルコンフィグモード)
ip name-server(グローバルコンフィグモード)
radius-server local(グローバルコンフィグモード)
service http(グローバルコンフィグモード)
show mac address-table(非特権EXECモード)
show radius local-server group(非特権EXECモード)
show radius local-server user(非特権EXECモード)
show running-config(特権EXECモード)
show startup-config(特権EXECモード)
unmount(特権EXECモード)
user(RADIUSサーバーモード)
vlan(RADIUSサーバー・ユーザーグループモード)
write file(特権EXECモード)
write memory(特権EXECモード)
write terminal(特権EXECモード)



(C) 2015 - 2019 アライドテレシスホールディングス株式会社

PN: 613-002107 Rev.AA