# copy

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

## 構文

コマンド構文

`# copy SOURCE DESTINATION`

## コマンド説明

ファイルをコピーする。
ローカルファイルシステム上でのコピーだけでなく、ネットワーク経由のリモートコピー（アップロードやダウンロード）や端末経由のファイル転送も可能。
本コマンドではさまざまな書式を使用できるが、基本パターンは次のとおり。

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

   `copy REGULARSRC REGULARDST`

2. 設定の保存や復元に使用する特殊な書式
   - ランタイムメモリー上にある現在の設定内容（ランニングコンフィグ）を起動時コンフィグ（スタートアップコンフィグ）として保存するための書式。write fileコマンド、write memoryコマンドと同等

     `copy running-config startup-config`

   - ランニングコンフィグを通常ファイルに保存するための書式。この場合、次回起動時にランニングコンフィグが自動復元されるわけではないので注意。

     `copy running-config REGULARDST`

   - 通常ファイルの内容をスタートアップコンフィグにコピーするための書式。指定したファイルに記述された設定内容を次回起動時に復元させたい場合に使用する。

     `copy REGULARSRC startup-config`

     Note

     「copy REGULARSRC startup-config」の書式では、既存のスタートアップコンフィグを上書きすることはできない。同書式でスタートアップコンフィグの内容を変更する場合は、あらかじめerase startup-configコマンドでスタートアップコンフィグを消去しておくこと。なお、次回のスタートアップコンフィグを変更する方法には、boot config-fileコマンドでスタートアップコンフィグの実体ファイルを切り替える方法もある。コンフィグファイルの管理方針にしたがって適切な方法を選択すること。

   - スタートアップコンフィグを通常ファイルにコピーするための書式。スタートアップコンフィグのバックアップに使う。

     `copy startup-config REGULARDST`

3. ZMODEMプロトコルにより通信ソフトウェア（端末エミュレーター）経由でファイル転送を行うための書式
   - ZMODEMでファイルを受信
     コピー先ファイル名は指定できない。ZMODEMプロトコルで通知された名前で保存される。

     `copy zmodem`

   - ZMODEMでファイルを送信

     `copy REGULARSRC zmodem`

## パラメーター

`SOURCE`
  コピー元（読み出し元）ファイルのパス。次のような指定が可能
  `REGULARSRC`
    通常ファイル。大きく分けて次の2種類がある
    `LOCALSRC`
      ローカルファイルのパス。もっとも簡略な指定方法として、「flash」、「nvs」のようにデバイス名だけを指定することもできる。この場合は、指定したデバイス上のパスを対話式にたずねてくる
    `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コマンドで変更できる
  `buffered-log`
    bufferedログ（ランタイムメモリーに保存されている一時ログ）を表す特殊な指定
  `permanent-log`
    permanentログ（フラッシュメモリーに保存されている永続ログ）を表す特殊な指定
`DESTINATION`
  コピー先（書き込み先）ファイルまたはディレクトリーのパス。第一引数（`SOURCE`）が`zmodem`の場合は指定できない。基本的な指定方法は第一引数（`SOURCE`）と同じ。ディレクトリーを指定した場合は、保存時のファイル名を対話式にたずねてくる
  `REGULARDST`
    通常ファイルまたはディレクトリー。大きく分けて次の2種類がある
    `LOCALDST`
      ローカルファイルまたはディレクトリーのパス。もっとも簡略な指定方法として、「flash」、「nvs」のようにデバイス名だけを指定することもできる。この場合は、指定したデバイス上のパスを対話式にたずねてくる
    `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コマンドでスタートアップコンフィグを消去しておくこと

## 使用例

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

    AT-AMF-app# copy test1.cfg test2.cfg

現在の設定内容（ランニングコンフィグ）を起動時コンフィグ（スタートアップコンフィグ）として保存する。これにより、次回起動時に現在の設定内容が復元される。

    AT-AMF-app# copy running-config startup-config

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

    AT-AMF-app# copy running-config snmpv3.cfg

起動時コンフィグ（スタートアップコンフィグ）の内容をflash:/basicip.cfgにコピー（バックアップ）する。

    AT-AMF-app# copy startup-config flash:/basicip.cfg

カレントディレクトリーにあるファイルsnmpv3.cfgの内容を起動時コンフィグ（スタートアップコンフィグ）にコピーする。これにより、次回起動時にsnmpv3.cfgの内容が復元される。

    AT-AMF-app# erase startup-config
    AT-AMF-app# copy snmpv3.cfg startup-config

Note

「copy REGULARSRC startup-config」の書式では、既存のスタートアップコンフィグを上書きすることはできない。同書式でスタートアップコンフィグの内容を変更する場合は、あらかじめerase startup-configコマンドでスタートアップコンフィグを消去しておくこと。なお、次回のスタートアップコンフィグを変更する方法には、boot config-fileコマンドでスタートアップコンフィグの実体ファイルを切り替える方法もある。コンフィグファイルの管理方針にしたがって適切な方法を選択すること。

現在の設定内容（ランニングコンフィグ）をTFTPサーバーhiyoko.example.comにアップロードし、同サーバー上のファイルrunning.cfgとして保存する（バックアップする）。

    AT-AMF-app# copy running-config tftp://hiyoko.example.com/running.cfg

IPv6対応のSSHサーバー「2001:db8:2:3::4」上のファイルtmp/heavytest.cfgをSSHのサブアプリケーションであるSCP（Secure CoPy）経由で取得し、フラッシュメモリーのルートディレクトリーにtest1000.cfgとして保存する。ログイン時のユーザー名としてはzeinを使用する。

    AT-AMF-app# 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として保存する。

    AT-AMF-app# copy http://www.example.com/~zein/work/myconfig.cfg myconfig.cfg

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

    AT-AMF-app# copy sftp://zein@www.example.com/www/work/myconfig.cfg flash:/myconfig2.cfg
    Password:XXXXXX （実際には表示されません）
    Copying..
    Successful operation

カレントディレクトリーにあるファイルmyconfig2.cfgを通信ソフトウェア（端末エミュレーター）経由で送信する（プロトコルはZMODEM）。

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

ZMODEMプロトコルにより通信ソフトウェア（端末エミュレーター）経由でファイルを受信し、カレントディレクトリーに保存する。保存時の名前にはZMODEMで通知されたものが使われる。

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

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

    AT-AMF-app# 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」などと指定すればコピー元ファイルのパスも対話式に入力できる。

    AT-AMF-app# 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」とだけ指定する。

    AT-AMF-app# 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」とだけ指定する。

    AT-AMF-app# 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」などと指定すればコピー元ファイルのパスも対話式に入力できる。

    AT-AMF-app# 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」とだけ指定する。

    AT-AMF-app# 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

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

    AT-AMF-app# copy tftp://2001:db8::2/tftp-test.txt flash

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

    AT-AMF-app# 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」だけは例外で、スタートアップコンフィグの実体ファイルが存在していても、現在のランニングコンフィグの内容で上書きする。
ファイル名、フォルダ名に \ は使用できない。
本コマンドは、複数ノードを対象とするワーキングセットプロンプト（atmf working-set）では実行できない（下記メッセージが出てエラーになる）。1台のノードだけを対象とするワーキングセットプロンプトか、ローカルプロンプトから実行すること。

    % Working set must contain only single node for this command

ただし、設定保存用の「copy running-config startup-config」だけは例外的に実行可能。
ZMODEMで転送するファイルのサイズは3MByte以下にすること。

## 関連コマンド