Linuxサーバ間でファイルのコピーをscpコマンドで行う方法

あるLinuxサーバから別のLinuxサーバにファイルをコピーしたい場合、scpコマンドを使用すると便利だ。

《例1》 あるLinuxサーバから別のLinuxサーバに1ファイルのみコピーする方法

# pwd
/home/test
# scp -p nobu@192.168.2.6:/home/test2/index.php ./
nobu@192.168.2.245's password:
index.php 100% 602 0.6KB/s 00:00

※上記は、コピー元のサーバ(IPアドレス:192.168.2.6)にユーザ名「nobu」でアクセスを行い、コピー元のサーバのディレクトリ「/home/test2/」直下に保存されている「index.php」ファイルをコピー先のサーバのカレントディレクトリ(/home/test)にコピーした時の例。

《例2》あるLinuxサーバから別のLinuxサーバに正規表現を用いて複数ファイルをコピーする方法

# scp -p nobu@192.168.2.6:/home/test2/*.html ./
nobu@192.168.2.6's password:
index.html 100% 16KB 15.9KB/s 00:00
index2.html 100% 16KB 15.9KB/s 00:00
index3.html 100% 319 0.3KB/s 00:00
test01.html 100% 304 0.3KB/s 00:00
test02.html 100% 8950 8.7KB/s 00:00
test03.html 100% 323 0.3KB/s 00:00

※上記は、コピー元のサーバ(IPアドレス:192.168.2.6)にユーザ名「nobu」でアクセスを行い、コピー元のサーバのディレクトリ「/home/test2/」直下に保存されている「.html」拡張子のファイル全てを「*(アスタリスク)」を用いた正規表現により取得し、コピー先のサーバのカレントディレクトリ(/home/test)にコピーした時の例。

※「*(アスタリスク)」は、0文字以上の文字列を表す。

《例3》あるLinuxサーバから別のLinuxサーバに指定したディレクトリ全体(丸ごと)をコピーする方法

# scp -pr nobu@192.168.2.6:/home/test3 ./

※上記は、コピー元のサーバ(IPアドレス:192.168.2.6)にユーザ名「nobu」でアクセスを行い、コピー元のサーバのディレクトリ「/home/test3/」配下にある全ディレクトリおよびファイルをコピー先のサーバのカレントディレクトリ(/home/test)にコピーした時の例。

※指定したディレクトリ全体(丸ごと)を再帰的にコピーする場合、「-r」オプションをつける。

《参考》

CentOS5で「man scp」を実行して確認できるヘルプ。

-p Preserves modification times, access times, and modes from the original file.

-r Recursively copy entire directories.

このヘルプより、

「-p」オプションは、オリジナルファイルの更新日時、アクセスタイム、モードを維持する

「-r」オプションは、ディレクトリ全体を丸ごと(再帰的に)コピーする

というオプションであることが分かる。

前へ

Outlook Express 6でのメール送信に失敗する原因の1つ(エラー番号:0x800CCC79)

次へ

小学館『小学一年生』2012年6月号を娘のために購入した