rsync 是一个非常强大的工具,用于高效地同步文件和目录。以下是一些 rsync 的使用实例,展示了不同场景下的使用方法:

1. 基本文件同步

将本地文件 file.txt 同步到目录 /path/to/destination/。

rsync file.txt /path/to/destination/

2. 目录同步

递归地同步本地目录 /source/ 到远程服务器的 /path/to/destination/ 目录。

rsync -r user@remotehost:/source/ /path/to/destination/

3. 排除文件

同步 /source/ 目录,但排除 log.txt 文件。

rsync -r --exclude 'log.txt' /source/ /path/to/destination/

4. 同步并压缩

在同步时压缩文件,适用于远程传输以节省带宽。

rsync -az /source/ user@remotehost:/path/to/destination/

5. 仅同步新文件和更改过的文件

仅同步源目录中新添加的或已更改的文件。

rsync -u /source/ /path/to/destination/

6. 同步时保留权限和时间戳

同步文件时保留原文件的权限和时间戳。

rsync -apt /source/ /path/to/destination/

7. 同步并保留链接

同步时保留符号链接。

rsync -al /source/ /path/to/destination/

8. 同步到远程主机

将本地目录同步到远程主机的指定目录。

rsync -r /local/path user@remotehost:/remote/path

9. 同步并删除目标目录中多余的文件

同步文件并在目标目录中删除那些源目录不存在的文件。

rsync -av --delete /source/ /path/to/destination/

10. 同步时指定带宽限制

限制 rsync 传输的带宽。

rsync -av --bwlimit=1000 /source/ user@remotehost:/path/to/destination/

11. 同步时显示进度条

显示文件同步过程中的进度条。

rsync -ah --progress /source/ /path/to/destination/

12. 同步时不解析主机名

直接使用 IP 地址进行同步,不进行DNS解析。

rsync -av --no-implied-dirs user@remotehost:/source/ /destination/

13. 同步时保留所有权和组信息

同步文件时保留原文件的所有者和组信息。

rsync -og /source/ /path/to/destination/

14. 同步时使用SSH

通过SSH进行安全文件传输。

rsync -avz -e ssh /source/ user@remotehost:/path/to/destination/

15. 同步时跳过基于大小和时间的检查

如果文件大小和最后修改时间与目标文件相同,则跳过同步。

rsync -av --checksum /source/ /path/to/destination/

这些实例展示了 rsync 的灵活性和多样性,可以根据实际需求选择合适的参数和选项。