web-dev-qa-db-ja.com

Scpを使用してリモートからローカルにフォルダをコピーする方法

scpを使用してリモートからローカルホストにフォルダをコピーする方法

私は自分のサーバーにログインするためにsshを使います。
次に、リモートフォルダーfooをローカルの/home/user/Desktopにコピーします。

これを達成する方法?

2362
Slasengger
scp -r [email protected]:/path/to/foo /home/user/Desktop/

man scpから( オンラインマニュアル を参照)

-rディレクトリ全体を再帰的にコピーします。

4338
Gryphius

scpをフルに活用するには、次のステップを踏む必要があります。

  1. 公開鍵認証
  2. sshエイリアスの作成

そして、たとえば〜/ .ssh/configのようにします。

Host test
    User testuser
    HostName test-site.com
    Port 22022

Host prod
    User produser
    HostName production-site.com
    Port 22022

あなたはパスワード入力からあなた自身を救い、このようにscp構文を単純化するでしょう:

scp -r prod:/path/foo /home/user/Desktop   # copy to local
scp -r prod:/path/foo test:/tmp            # copy from remote prod to remote test

さらに、リモートパス補完を使用することができます。

scp test:/var/log/  # press tab twice
Display all 151 possibilities? (y or n)

更新:

リモートのbash-completionを有効にするには、<source><target>の両方のホストにbash-Shellを持ち、正しくbash-completionを機能させる必要があります。詳しくは、関連質問を参照してください。

scp使用時にリモートパスの自動補完を有効にする方法は?
SCPファイル名タブ補完

276

ローカルロケーション から リモートロケーション にすべてをコピーするには/(アップロード)

scp -r /path/from/destination username@hostname:/path/to/destination

リモートロケーション から ローカルロケーション にすべてコピーするには/(ダウンロード)

scp -r username@hostname:/path/from/destination /path/to/destination

xxxx カスタムポート 番号のカスタムポート

 scp -r -P xxxx username@hostname:/path/from/destination /path/to/destination

現在のディレクトリを RemoteからLocal にコピーします。

scp -r username@hostname:/path/from/file .

助けて:

  1. -rすべてのディレクトリとファイルを再帰的にコピーする
  2. 常に/からフルロケーションを使用、pwdでフルロケーションを取得
  3. scpはすべての既存ファイルを置き換えます
  4. hostnameはホスト名またはIPアドレスになります
  5. (ポート22以外に)カスタムポートが必要な場合は-P portnumberを使用してください。
  6. 。 (ドット) - 現在の作業ディレクトリを意味するので、サーバからダウンロード/コピーしてここに貼り付けるだけです。

注: ファイアウォールでポートが許可されていないためにカスタムポートが機能しない場合があるため、着信および発信接続用にカスタムポートをファイアウォールで許可してください

175
Shiv Singh

私がいつも使っているのは:

scp -r username@IP:/path/to/server/source/folder/  .

。 (ドット) current folderを意味します。サーバーからコピーしてここに貼り付けるだけです。

_ ip _ 125.55.41.311のようなIPアドレス、またはns1.mysite.comのようなホストにすることができます。

46

最初にリモートサーバー上のカタログを圧縮する方が良いでしょう。

tar czfP backup.tar.gz /path/to/catalog

次に、リモートからダウンロードします。

scp [email protected]:/path/to/backup.tar.gz .

最後に、ファイルを解凍します。

tar -xzvf backup.tar.gz
28
justi

また、遠隔地からダウンロードするファイルが1つでもあり、セキュリティをあまり気にしないのであれば、scpのデフォルトの暗号化(Triple-DES)を 'blowfish'のようなものに変更してみてください。

これにより、ファイルのコピー時間が大幅に短縮されます。

scp -c blowfish -r [email protected]:/path/to/foo /home/user/Desktop/
21
dimuthu

あなたの団結ツールバーのファイルに移動します

enter image description here

Ctrl + lを押して、[email protected]と書きます。

192.168.1.103は接続したいホストです。

ここの一例

enter image description here

19
Ronald

典型的なシナリオ

scp -r -P port username@ip:/path-to-folder  .

サンプルで説明

scp -r -P 27000 [email protected]:/tmp/hotel_dump .

どこで、

port = 27000
username = "abc" , remote server username
path-to-folder = tmp/hotel_dump
. = current local directory
17
Arun G

"認証に失敗した回数が多すぎる" に遭遇した場合は、サーバーsshサーバーに追加したSSHキーを正確に指定してください。

scp -r -i /path/to/local/key [email protected]:/path/to/folder /your/local/target/dir
11
kaiser

問題は、scpコマンドを使用して、フォルダをリモートからローカルにコピーする方法です。

$ scp -r userRemote@remoteIp:/path/remoteDir /path/localDir

しかし、これがsftpでそれを実行するためのより良い方法です - SSHファイル転送プロトコル(Secure File Transfer Protocol、またはSFTP)は、信頼できるデータストリーム上でファイルアクセス、ファイル転送、およびファイル管理を提供するネットワークプロトコルです。 。

$ sftp user_remote@remote_ip

sftp> cd /path/to/remoteDir

sftp> get -r remoteDir

Fetching /path/to/remoteDir to localDir 100% 398 0.4KB/s 00:00

sftpコマンドに関するヘルプを表示するには、helpまたは?を入力してください。

10
Fulvio

理由はわかりませんが、ソースサーバーのディレクティブの前にローカルフォルダーを使用する必要がありました。それを機能させるために

scp -r . [email protected]:/usr/share/nginx/www/example.org/
5
Salem