使用rsync从远程服务器将文件复制到本地计算机

时间:2012-02-01 04:30:54

标签: ssh rsync

一旦我进入远程服务器,该命令将目录中的所有文件复制到我机器上的本地目录中?

3 个答案:

答案 0 :(得分:501)

从您当地的机器:

rsync -chavzP --stats user@remote.host:/path/to/copy /path/to/local/storage

使用非标准ssh端口的本地计算机:

rsync -chavzP -e "ssh -p $portNumber" user@remote.host:/path/to/copy /local/path

或者从远程主机,假设您真的想以这种方式工作并且本地计算机正在侦听SSH:

rsync -chavzP --stats /path/to/copy user@host.remoted.from:/path/to/local/storage

有关我常用开关的说明,请参阅man rsync

答案 1 :(得分:44)

如果您有SSH访问权限,则无需首先通过SSH进行复制,只需使用目标中的Secure Copy (SCP)即可。

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

支持通配符,所以

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

将复制该文件夹中的所有远程文件。如果复制多个目录。

注意-r也将复制所有子文件夹和内容。

答案 2 :(得分:1)

我认为最好从本地计算机复制文件,因为如果文件数量或文件大小非常大,如果当前的 ssh 会话丢失(管道损坏或其他什么),复制过程可能会中断。

如果您已配置 ssh 密钥连接到远程服务器,则可以使用以下命令:

rsync -avP -e "ssh -i /home/local_user/ssh/key_to_access_remote_server.pem" remote_user@remote_host.ip:/home/remote_user/file.gz /home/local_user/Downloads/

其中 v 选项为 --verbosea 选项为 --archive - 存档模式,P 选项与 --partial 相同 - 保持部分传输文件,e 选项为 --rsh=COMMAND - 指定要使用的远程 shell。

rsync man page