scp
を使用してリモートからローカルホストにフォルダをコピーする方法
私は自分のサーバーにログインするためにssh
を使います。
次に、リモートフォルダーfoo
をローカルの/home/user/Desktop
にコピーします。
これを達成する方法?
scp -r [email protected]:/path/to/foo /home/user/Desktop/
man scp
から( オンラインマニュアル を参照)
-rディレクトリ全体を再帰的にコピーします。
scpをフルに活用するには、次のステップを踏む必要があります。
そして、たとえば〜/ .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 -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 .
助けて:
-r
すべてのディレクトリとファイルを再帰的にコピーする/
からフルロケーションを使用、pwd
でフルロケーションを取得scp
はすべての既存ファイルを置き換えますhostname
はホスト名またはIPアドレスになります-P portnumber
を使用してください。注: ファイアウォールでポートが許可されていないためにカスタムポートが機能しない場合があるため、着信および発信接続用にカスタムポートをファイアウォールで許可してください
私がいつも使っているのは:
scp -r username@IP:/path/to/server/source/folder/ .
。 (ドット) :current folder
を意味します。サーバーからコピーしてここに貼り付けるだけです。
_ ip _ :125.55.41.311
のようなIPアドレス、またはns1.mysite.com
のようなホストにすることができます。
最初にリモートサーバー上のカタログを圧縮する方が良いでしょう。
tar czfP backup.tar.gz /path/to/catalog
次に、リモートからダウンロードします。
scp [email protected]:/path/to/backup.tar.gz .
最後に、ファイルを解凍します。
tar -xzvf backup.tar.gz
また、遠隔地からダウンロードするファイルが1つでもあり、セキュリティをあまり気にしないのであれば、scpのデフォルトの暗号化(Triple-DES)を 'blowfish'のようなものに変更してみてください。
これにより、ファイルのコピー時間が大幅に短縮されます。
scp -c blowfish -r [email protected]:/path/to/foo /home/user/Desktop/
典型的なシナリオ
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
"認証に失敗した回数が多すぎる" に遭遇した場合は、サーバーsshサーバーに追加したSSHキーを正確に指定してください。
scp -r -i /path/to/local/key [email protected]:/path/to/folder /your/local/target/dir
問題は、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
または?
を入力してください。
理由はわかりませんが、ソースサーバーのディレクティブの前にローカルフォルダーを使用する必要がありました。それを機能させるために
scp -r . [email protected]:/usr/share/nginx/www/example.org/