rsync 是用于文件同步与备份的命令行工具,核心特点是增量传输,同时支持本地与远程(经 SSH 或 rsync daemon)同步。
主要能力:归档模式 -a 保留权限与时间等属性,-v 输出详情,-z 压缩传输,-P 显示进度并支持断点续传,-n 模拟运行(dry-run)。可使用 --delete 镜像同步并删除目标多余文件,--exclude 与 --exclude-from 排除文件,--bwlimit 限制带宽,--max-size 限制文件大小,--chmod 调整权限。
基本用法:本地同步 rsync -av source/ dest/;推送 rsync -avz source/ user@remote:/path/dest/;拉取 rsync -avz user@remote:/path/source/ dest/。远程可指定 SSH 与端口:rsync -avz -e 'ssh -p 2222' source/ user@host:/path/,或使用密钥 -e 'ssh -i ~/.ssh/key';daemon 模式为 rsync -avz source/ rsync://user@host/module/。
备份方面,可用 --link-dest 配合硬链接做增量备份,并用软链接维护 latest,再结合 find 清理过期备份;示例脚本包含 rsync 增量备份、更新链接与保留最近 7 天。常见场景包括网站文件同步(排除 cache、日志与临时上传目录)、数据库备份同步(先 mysqldump 再 rsync)以及大文件断点续传(中断后重跑同一命令继续)。
限制与注意事项:源路径末尾的“/”有语义区别,source/ 同步目录内容,source 则同步目录本身;执行删除类操作前建议先用 -n 模拟确认。资料未提供安装方式、版本要求、平台范围与已知限制的更多细节。