- 工信部备案号 滇ICP备05000110号-1
- 滇公网安备53011102001527号
- 增值电信业务经营许可证 B1.B2-20181647、滇B1.B2-20190004
- 云南互联网协会理事单位
- 安全联盟认证网站身份V标记
- 域名注册服务机构许可:滇D3-20230001
- 代理域名注册服务机构:新网数码
- CN域名投诉举报处理平台:电话:010-58813000、邮箱:service@cnnic.cn
在 Linux 系统管理和云计算环境中,文件同步和备份是日常运维的关键任务。rsync 是一个功能强大、灵活且高效的文件同步工具,它能够快速同步本地和远程文件,仅传输变化的部分,极大节省带宽和时间。本文将详细介绍 rsync 的基本用法、高级技巧和实际应用场景,帮助您掌握这一必备工具。
rsync(remote sync)的核心优势在于其增量传输算法,只传输源文件和目标文件之间的差异部分,而不是整个文件。这使得它在同步大文件或大量文件时特别高效。
rsync [选项] 源路径 目标路径
· -v, --verbose:详细输出,显示同步过程
· -r, --recursive:递归同步目录
· -a, --archive:归档模式,等同于 -rlptgoD(保留权限、时间、所有者等)
· -z, --compress:传输时压缩数据
· -h, --human-readable:以人类可读格式输出
· --delete:删除目标中存在而源中不存在的文件
· --exclude:排除指定文件或目录
· --include:包含指定文件或目录
· --progress:显示传输进度
· --dry-run:模拟运行,不实际传输
· --partial:保留部分传输的文件,便于断点续传
· -P:等同于 --progress --partial
# 基本同步
rsync -av /source/directory/ /destination/directory/
# 同步并显示进度
rsync -avh --progress /home/user/documents/ /backup/documents/
# 同步并删除目标中多余的文件
rsync -av --delete /source/ /destination/
重要提示:源路径末尾的斜杠 /有不同含义:
· /source/directory/:同步目录内的内容
· /source/directory:同步目录本身及其内容
# 排除指定文件类型
rsync -av --exclude='*.log' /source/ /destination/
# 排除多个文件类型
rsync -av --exclude='*.tmp' --exclude='*.bak' /source/ /destination/
# 从文件读取排除列表
rsync -av --exclude-from='/path/to/exclude-list.txt' /source/ /destination/
exclude-list.txt内容示例:
*.log
*.tmp
temp/
cache/
rsync 支持通过 SSH 协议进行安全的远程同步,这是其最强大的功能之一。
# 同步到远程服务器
rsync -avz /local/path/ user@remotehost:/remote/path/
# 使用非标准SSH端口
rsync -avz -e 'ssh -p 2222' /local/path/ user@remotehost:/remote/path/
# 从远程服务器同步
rsync -avz user@remotehost:/remote/path/ /local/path/
# 通过本地中转同步两个远程服务器
rsync -avz user1@source_host:/source/path/ user2@dest_host:/dest/path/
售前咨询
售后咨询
备案咨询
二维码

TOP