主要选项
通过组合`rsync`命令的各种选项来设置文件同步和备份任务。
1. 基础同步
2. 传输模式和选项
生成的命令:
请尝试组合命令。
描述:
`rsync` 执行命令。
通过组合这些选项,您可以与 AI 一起虚拟地执行命令。
rsync的工作原理
`rsync`使用“增量编码(delta encoding)”算法,仅传输文件的更改部分,从而有效利用网络带宽。因此,在同步大型文件或多个文件时非常快速且高效。
rsync的主要特性
`rsync`与其他复制工具的核心功能差异。
- 增量传输 (Delta Transfer): 仅识别源和目标文件之间的差异进行传输。通过仅传输更改的块来最大化效率,而不是重新复制整个文件。
- 增量备份 (Incremental Backup): 仅复制自上次备份以来更改的文件,因此无需每次都进行完整备份,节省时间和空间。
- 远程同步: 通过包括SSH在内的各种远程Shell,以加密通道传输文件,提高安全性。
- 文件属性保留: 使用归档模式(`-a`)时,保留文件的所有属性,包括权限、所有者、组、时间戳、符号链接等。
尾部斜杠的意义
`rsync`中源路径是否加尾部斜杠(`/`)是非常重要的。 - `source/`: 复制`source`目录 **中的内容**。(例如: `cp source/* dest/` 类似) - `source`: 复制`source`目录 **本身**。(例如: `cp -r source dest/` 类似) 如果不能理解这个区别,可能会导致意外结果。
使用示例
通过`rsync`命令的实际使用示例,制定文件同步和备份策略。
本地目录同步 (归档模式)
rsync -av /path/to/source_dir/ /path/to/destination_dir/
将`source_dir`的内容同步到`destination_dir`。保留权限、时间等所有属性。`source_dir`中不存在的文件不会从`destination_dir`中删除。
将目录镜像到远程服务器 (备份)
rsync -avz --delete --progress /local/my_data/ user@remote_host:/remote/backup/
将本地的`my_data`目录内容镜像到远程服务器的`/backup/`目录。源中不存在的文件也会在目标中删除。使用压缩并显示进度。
从远程服务器获取特定文件
rsync -avz --include='*.log' --exclude='*' user@remote_host:/var/log/ /tmp/logs/
从远程服务器的`/var/log/`目录获取`.log`文件到本地的`/tmp/logs/`目录。
在不实际执行的情况下预览更改
rsync -avz --delete --dry-run /path/to/source/ /path/to/destination/
不实际传输或删除文件,而是预先显示将发生的更改。在进行重要同步之前,始终建议使用。
使用不同的SSH端口进行同步
rsync -avz -e "ssh -p 2222" /local/src/ user@remote_host:/remote/dest/
使用2222端口而非默认SSH端口(22)与远程服务器同步文件。