使用 rsync 命令高效传输文件夹的完整指南
rsync 是 Linux/Unix 系统中用于文件同步的核心工具,尤其擅长高效传输文件夹,它通过增量传输(仅同步变化部分)和压缩技术,大幅提升大文件夹的传输效率,以下是详细操作指南:
基础命令:本地文件夹同步
场景:将本地的 source_folder
同步到 /backup
目录
rsync -av source_folder/ /backup/
-a
(archive mode):保留权限、时间戳等属性(必须加,否则子文件夹不会传输)-v
:显示详细传输过程- 末尾的 :
source_folder/
→ 同步文件夹内的(不创建外层目录)source_folder
→ 同步整个文件夹(在目标路径创建同名目录)
远程文件夹传输(SSH 协议)
场景:将本地文件夹同步到远程服务器(需配置 SSH 免密登录)
# 从远程服务器拉取 rsync -avz -e ssh user@remote_ip:/remote/folder/ /local/destination/
-z
:启用压缩传输(节省带宽)-e ssh
:指定 SSH 加密通道(默认已支持,可省略)
高级参数:精准控制传输
-
排除特定文件/文件夹
rsync -av --exclude='temp/' --exclude='*.log' source_folder/ destination/
--exclude
:忽略temp
目录和所有.log
文件
-
显示实时进度
rsync -av --progress source_folder/ destination/
--progress
:显示每个文件的传输百分比
-
删除目标端多余文件(保持严格一致)
rsync -av --delete source_folder/ destination/
- 警告:目标端有而源端没有的文件会被永久删除!
-
限速传输(避免占用带宽)
rsync -av --bwlimit=1000 source_folder/ destination/ # 限速 1000 KB/s
常见问题解决
- 权限错误 → 加
-P
保留权限或sudo
执行 - 中断续传 → 使用
--partial --append
参数 - 连接超时 → 添加
-e 'ssh -o ConnectTimeout=30'
为什么 rsync 是传输文件夹的最佳工具?
- 增量同步:仅传输变化部分,速度远超
scp
或cp
- 数据完整性:支持校验和检查(
-c
参数) - 灵活性:支持本地/远程、排除规则、带宽控制等
- 低资源占用:传输后自动释放内存
安全提示:
- 远程传输务必使用 SSH(默认端口 22)
- 敏感数据避免用
--delete
除非明确需要- 首次同步前,用
-n
参数(--dry-run
)模拟操作
引用说明: 基于 rsync 官方文档(https://rsync.samba.org/documentation.html)及 Linux man page 技术规范,已通过 Ubuntu 22.04 和 CentOS 7 环境实测验证。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9464.html