
Linuxサーバ間でのディレクトリのコピーには、SCPコマンドを使うことができます。scpコマンドは、Secure Copy Protocol(セキュアコピープロトコル)を使用して、ファイルやディレクトリを安全にコピーするためのコマンドです。
ここでは、scpコマンドを使ってLinuxサーバ間でディレクトリごとコピーする方法を解説します。
-r オプションでディレクトリを再帰的にコピーする
ディレクトリごと再帰的にコピーする場合は、「-r」オプションを指定します。
例えば、Linuxサーバ上の/home/user/dir1ディレクトリを、ローカルPCの/home/user/dir2ディレクトリにコピーする場合は、以下のようなコマンドを入力します。
$ scp -r /home/user/dir1/ /home/user/dir2/
このコマンドを実行すると、Linuxサーバ上の/home/user/dir1ディレクトリが、ローカルPCの/home/user/dir2ディレクトリにコピーされます。
Linuxサーバー間(別サーバー)にコピーする
Linuxサーバー間でscpコマンドを使うには、コピー元のサーバとコピー先のサーバの両方にSSH接続が必要です。
SSH接続ができていることを確認したら、次のようなコマンドを実行します。
$ scp -r [source_directory] [user]@[host]:[destination_directory]
上記のコマンドでは、[source_directory]にはコピー元のディレクトリを、[user]@[host]にはコピー先のサーバのユーザー名とホスト名を、[destination_directory]にはコピー先のディレクトリを指定します。
逆に、リモートホストの/home/user/tmp以下のファイルとディレクトリすべてをローカルの~/tmpにコピーする場合は、次のようにします。
$ scp -r user1@192.168.10.1:/home/user/tmp ~/tmp
以上が、Linuxサーバ間でディレクトリをコピーする際にSCPコマンドを使う方法です。scpコマンドを使うことで、Linuxサーバ間でディレクトリを安全にコピーできるため、データの漏洩などを防ぐことができます。
【おまけ】複数のファイルを一括でコピーする
SCPコマンドで複数のファイルを一度にコピーする方法は、次のようになります。
ローカルからリモートに複数のファイルをコピーする場合は、ファイル名をスペースで区切って指定します。
$ scp foo.txt bar.txt your_username@remotehost.com:~
ファイル名に共通のパターンがある場合は、ブレース展開やワイルドカードを使って指定できます。
$ scp {foo,bar}.txt your_username@remotehost.com:~
$ scp *.txt your_username@remotehost.com:~
リモートからローカルに複数のファイルをコピーする場合は、リモート側のファイル名をクォートして指定します。
$ scp your_username@remotehost.com:'{foo,bar}.txt' ~
$ scp your_username@remotehost.com:'*.txt' ~
以上です。
この手の情報はメモしておくと、いつか何かの役に立ちますよね。
- Original:https://minory.org/linux-scp-directory.html
- Source:Minory
- Author:管理者
Amazonベストセラー
Now loading...