rsync命令——支持断点续传、增量传输的远程传输利器
用法
和常见的scp
命令一样,既可以用于上传数据,也可以用于从服务器上获取数据,一般是ubuntu服务器自带的命令。
华点是:它的-P
选项具有断点续传功能。当中途网络断开了,只要重新运行同一rsync
命令,就会从上次传输中断的地方继续传输。
上传数据
将本地文件夹my_folder中的内容传到远程服务器remote_folder文件夹中:
rsync -avzP /path/to/my_folder/ user@192.168.1.10:/home/user/remote_folder/
-a
:归档模式,表示递归地传输目录,并保持文件的权限、时间戳等属性。-v
:详细模式,显示传输过程中的信息。-z
:压缩传输,适用于带宽有限的网络。-P
:允许在传输中断时保留已经传输的部分文件。[网差必备]
如果是将本地文件夹my_folder整个传到远程服务器remote_folder文件夹中,则用:
rsync -avzP /path/to/my_folder user@192.168.1.10:/home/user/remote_folder/
获取数据
将远程服务器remote_folder中所有内容传到本地my_folder文件夹中:
rsync -avzP username@server_ip:/home/user/remote_folder/ /local/to/my_folder/
与scp
命令的区别
- 增量传输:rsync 会只传输源和目标之间的差异部分,如果文件已经存在而未修改,则不会重复传输,scp 则会每次传输整个文件。
- 如果加了
-P
选项,则支持断点续传:如果传输过程中断,你可以重新运行 rsync,它会从上次中断的地方继续,网络不稳定的情况下传输大文件的利器! - 带宽效率:
rsync
结合-z
选项可以对数据进行压缩,节省带宽,而 scp 默认不压缩。