rsync通过增量同步高效复制文件,支持本地及远程同步,常用选项包括-a、-v、-z和–delete,结合ssh可安全传输数据,配合cron可实现定时备份。
rsync 是 linux 系统中一个非常强大且常用的文件同步工具,能够高效地在本地或远程系统之间复制和同步文件与目录。它以“增量同步”为核心机制,只传输发生变化的部分,大幅节省带宽和时间。
基本语法与常用选项
rsync 的基本命令格式如下:
rsync [选项] 源路径 目标路径
常见实用选项包括:
- -a:归档模式,保留符号链接、权限、时间戳等属性,常用于备份
- -v:显示详细过程信息(verbose)
- -r:递归处理子目录
- -t:保留修改时间
- -z:启用压缩传输数据
- -h:输出更易读的大小单位(如 KB、MB)
- –delete:删除目标中源不存在的文件,保持完全同步
- –exclude=文件名:排除指定文件或目录不进行同步
本地文件同步示例
将本地目录 /data/docs 同步到 /backup/docs:
rsync -av /data/docs/ /backup/docs/
注意结尾斜杠的区别:
- /data/docs/ 表示同步目录中的内容
- /data/docs 表示同步整个 docs 目录本身
远程同步(通过SSH)
rsync 可通过 SSH 安全地与远程主机同步。例如将本地文件推送到远程服务器:
rsync -avz /home/user/data/ user@192.168.1.100:/home/user/backup/
从远程拉取文件到本地:
rsync -avz user@192.168.1.100:/home/user/logs/ /local/logs/
若使用非默认 SSH 端口,可通过 -e 指定:
rsync -avz -e “ssh -p 2222” /data/ user@host:/backup/
增量备份与同步机制
rsync 使用“快速检查”算法,默认根据文件大小和修改时间判断是否变化。只有发生变化的文件才会被传输,且内部采用“delta-transfer”算法,仅发送差异块,极大提升效率。
对于大文件的小幅修改,这种机制尤其高效,适合定期备份场景。
实用技巧与注意事项
避免常见错误并提升使用体验:
- 同步重要数据前先用 -n(模拟运行)测试命令效果
- 使用 –progress 查看大文件传输进度
- 配合 cron 实现定时自动同步,例如每天凌晨执行备份任务
- 排除临时文件:–exclude=’*.tmp’ –exclude=’cache/’
- 确保目标路径存在,否则同步可能失败
基本上就这些。掌握 rsync 的核心选项和使用场景,能让你在日常运维、数据备份和迁移中事半功倍。关键是理解路径写法、同步方向和排除规则,其余根据需求灵活组合即可。
评论(已关闭)
评论已关闭