まとめも

大事だと思ったこと、困ったところのメモ

scpで複数のファイルをまとめて送信する

scpで複数ファイルをまとめてコピーする方法が意外と知られていないようなのでメモします。

scpとは

SCP (Secure Copy Protocol)は、SSHの仕組みを用いてファイルをコピーできるプロトコルです。 使いかたは通常の cp コマンドと同じように使用できます。

scp [ファイルのコピー元] [コピー先]

ローカルホスト内(同じマシン内)でも利用できますが、基本的にはローカルホストとリモートホスト(別のマシン)のファイルやり取りでよく使われます。 ファイル送信や受信する際ファイルのパーミッション関連でエラーメッセージがでることがあります。 その際は一度/tmpに置くとうまくいくと思います。

基本的な使いかた

ファイルを送り込む

scp [ユーザー名]@[ホスト名]:[リモートファイルパス] [ローカルファイルパス]

例)

リモートマシンのユーザー名が remoteusername
リモートマシンのドメイン名が hostname.remote
送信元ファイルが ~locausername/src_file
送信先ファイルが /tmp/dest_file

の場合

scp ~localusername/src_file remoteusername@hostname.remote:/tmp/dest_file

ファイルを取り込む

scp [ローカルファイルパス] [ユーザー名]@[ホスト名]:[リモートファイルパス]

例)

リモートマシンのユーザー名が remoteusername
リモートマシンのドメイン名が hostname.remote
受信元ファイルが /tmp/src_file
受信ファイルが  ~localhostname/dest_file

の場合

scp remoteusername@hostname.remote:/tmp/src_file ~localusername/dest_file

複数のファイルをまとめて送信する

ファイルを送り込む

scp { [ローカルファイルパス] [ローカルファイルパス] ... [ローカルファイルパス] } [ユーザー名]@[ホスト名]:[リモートディレクトリ]

例)

リモートマシンのユーザー名が remoteusername
リモートマシンのドメイン名が hostname.remote
送信元ファイルが /tmp/src_file1と/tmp/src_file2
送信先ディレクトリが ~remotename/dest_dir

の場合

scp /tmp/src_file1 /tmp/src_file2 remoteusername@hostname.remote:/tmp/dest_dir/