linux中的rsync命令常见用法
基本介绍
- 用途:常用于在不同的linux机器间进行拷贝或者同步文件(例如在你的本地机器和服务器的文件传输同步等),而且这个命令不需要root权限.
- 如果你的机器还没rsync命令,ubuntu上可以通过
sudo apt install rsync
进行安装. - 使用remote-uopdate协议,意味着他只是传输文件不同的部分.这使得它传输得更快,而且也能具备同步的功能.
基本用法
- 基本语法:
rsync option src dest
- 常用选项:
opt | description |
-v | 冗长模式,显示详细信息 |
-r | 递归拷贝,但是不会保留文件的时间,权限信息 |
-a | 归档模式,拷贝的同时会保留原文件信息(symblic links, file permissions, user and group ownership, timestamps) |
-z | 传输的过程进行文件的压缩 |
-h | 易读模式(human-readable) |
-e | 使用特定协议进行传输,后面指定协议名称(如-e ssh表示使用,注意,如果使用此选项,多选项一定要把e放在选项的最后,例如 -avzhe ssh) |
–progress | 显示数据传输过程 |
–include ‘filename’, –exclude ‘filename’ | 指定包含或者排除的传输文件,支持通配符. |
–delete | 用于同步,如果某个文件或者目录在src不存在但是在dest存在,那么那就会在dest中删除这个文件. |
–max-size | 指定传输的最大大小,例如–max-size=’200k’ 就只可以传输小于等于200k的文件大小. |
–remove-source | 成功传输后删除原文件或者原文件夹 |
–dry-run | 模拟传输过程,即不是真实传输,只是让你看看执行此命令的输出,如果输入和你理想中一样,就可以删除此选项进行真实的传输或同步 |
–bwlimit | 设置传输带宽限制 |
常见用法
- 在一台机器内的文件的拷贝和同步:
rsync -zvh srcfile destdir/
. - 在一台机器内的文件夹的拷贝和同步:
rsync -avzh srcdir destdir/
. - 将本地机器文件/文件夹传输或同步到远程机器:
rsync -avzh local_dir user@server_ip:absolute_path
- 将远程机器文件/文件夹传输或同步到本地机器:
rsync -avzh user@server_ip:absolute_path local_path
- 结合上面的基本用法,你应该可以掌握许多种用法了.