web-dev-qa-db-ja.com

rsyncを使ってリモートサーバーからローカルマシンにファイルをコピーする

リモートサーバにSSH接続した後、ディレクトリ内のすべてのファイルを自分のマシンのローカルディレクトリにコピーするというコマンドはどうなりますか。

274
markstewie

あなたのローカルマシンから:

rsync -chavzP --stats [email protected]:/path/to/copy /path/to/local/storage

非標準のsshポートを持つあなたのローカルマシンから:

rsync -chavzP -e "ssh -p $portNumber" [email protected]:/path/to/copy /local/path

あるいは、リモートホストから、あなたが本当にこの方法で作業したいと思い、あなたのローカルマシンがSSHをリッスンしていると仮定します。

rsync -chavzP --stats /path/to/copy [email protected]:/path/to/local/storage

私のいつものスイッチについての説明は man rsync を見てください。

506
Johnsyweb

SSHアクセスがある場合は、最初にSSHを実行してからコピーする必要はありません。宛先から Secure Copy(SCP) を使用するだけです。

scp user@Host:/path/file /localpath/file

ワイルドカード文字がサポートされているので

scp user@Host:/path/folder/* /localpath/folder

そのフォルダ内のすべてのリモートファイルをコピーします。複数のディレクトリをコピーする場合。

note -rはすべてのサブフォルダーとコンテンツもコピーします。

45
Tezyn