rsync是一个功能强大的文件同步和传输工具,广泛用于Unix/Linux系统。它通过高效的差分算法仅传输变化部分,特别适合大文件和频繁更新的场景。下面我将从基本语法、常用选项、高级技巧到实际应用场景全面介绍rsync命令。
rsync命令的基本语法分为本地同步和远程同步两种格式:
本地同步:
rsync [选项] 源路径 目标路径
远程同步(通过SSH协议):
rsync [选项] 源路径 [用户@]远程主机:目标路径
rsync [选项] [用户@]远程主机:源路径 目标路径
远程同步(通过rsync守护进程协议):
rsync [选项] rsync://远程主机模块名/[目标路径]
选项 | 功能描述 | 使用场景 |
---|---|---|
-a | 归档模式(相当于-rlptgoD组合) | 保留文件所有属性,适合备份 |
-v | 显示详细同步过程 | 调试和查看传输详情 |
-z | 压缩传输文件 | 减少网络传输量 |
-r | 递归同步子目录 | 同步目录结构 |
-h | 人类可读格式显示 | 更直观查看文件大小 |
-P | 显示进度和续传功能 | 大文件传输时监控 |
--delete | 删除目标中源不存在的文件 | 保持完全同步(慎用) |
--exclude | 排除匹配模式的文件/目录 | 选择性同步 |
--dry-run | 模拟执行不实际同步 | 测试命令正确性 |
-a
归档模式实际上是多个选项的组合:
-r:递归同步目录及其子目录
-l:保留符号链接
-p:保留文件权限
-t:保留时间戳
-g:保留属组信息
-o:保留属主信息
-D:保留设备文件和特殊文件
基本目录同步:
rsync -av /data/source/ /data/backup/
/data/source
),目标目录会创建以source为名的子目录rsync -avh --progress /source/dir/ /backup/dir/
-h:人类可读格式
--progress:显示传输进度
将本地目录同步到远程服务器:
rsync -avz -e ssh /local/path/ user@remote:/remote/path/
-z:压缩传输,减少网络流量
rsync -avz user@remote:/remote/path/ /local/path/
保持目标与源完全一致(删除多余文件):
rsync -av --delete /source/ /destination/
--dry-run
测试排除特定文件/目录:
rsync -av --exclude='*.log' --exclude='temp/' /source/ /destination/
?
--exclude-from=文件
指定限制带宽使用(单位KB/s):
rsync -avz --bwlimit=1000 /source/ user@remote:/destination/
rsync -avz -e 'ssh -p 2222' /source/ user@remote:/destination/
部分传输与恢复:
rsync -avz --partial /source/ user@remote:/destination/
批量同步大量小文件:
rsync -avW /source/ /destination/
模拟执行(测试命令):
rsync -avn /source/ /destination/
--dry-run
:只显示将执行的操作而不实际执行同步后校验文件完整性:
rsync -avc /source/ /destination/
每日增量备份脚本示例:
rsync -avz --delete --link-dest=/backup/previous/ /data/ /backup/current/
同步网站目录到生产服务器:
rsync -avz --exclude='config.php' --exclude='tmp/' \
/var/www/dev/ user@production:/var/www/html/
多服务器间保持配置一致:
rsync -avz --delete /etc/nginx/ server{1..5}:/etc/nginx/
创建远程服务器镜像:
rsync -avz --delete -e ssh /local/mirror/ user@remote:/remote/mirror/
rsync -av /source /dest:将创建/dest/source
目录rsync -av /source/ /dest:将同步/source/*
到/dest/
下2、权限问题:
sudo
或适当设置目录权限3、首次同步建议:
--dry-run
测试4、性能优化:
-z
压缩减少CPU开销