rsync(Remote Sync)是 Linux 系统中一个高效的文件同步工具,广泛用于本地或远程系统之间的文件和目录传输。它采用“增量传输”机制,仅传送源与目标之间的差异内容,从而显著提升传输效率。
rsync [参数] 源路径 目标路径
本地复制:
rsync -av /path/to/source/ /path/to/destination/
从本地推送到远程:
rsync -avz /local/path/ username@remote_host:/remote/path/
从远程拉取到本地:
rsync -avz username@remote_host:/remote/path/ /local/path/
| 参数 | 全称 | 作用描述 |
|---|---|---|
| -a | --archive | 归档模式,保留所有文件信息(相当于 -rlptgoD) |
| -v | --verbose | 显示详细操作过程 |
| -z | --compress | 启用压缩传输 |
| -r | --recursive | 递归处理目录 |
| -l | --links | 保留软链接 |
| -p | --perms | 保 留文件权限设置 |
| -t | --times | 保留修改时间 |
| -g | --group | 保留所属组信息 |
| -o | --owner | 保留拥有者信息 |
| -D | --devices | 保留设备文件(需 root 权限) |
| -h | --human-readable | 以易读方式显示大小 |
| --progress | 展示传输进度条 | |
| --delete | 删除目标中多余的文件 | |
| --exclude=PATTERN | 跳过匹配该模式的文件 | |
| --include=PATTERN | 包括匹配该模式的文件 |
# 将 /home/user/docs 内容同步至 /backup/docs,并保留所有属性
rsync -av /home/user/docs/ /backup/docs/
注意:结尾斜杠
/表示同步目录内的内容而非目录本身
# 同步本地目录到远程服务器并启用压缩
rsync -avz /data/backups/ user@example.com:/remote/backups/
# 忽略 .tmp 文件及 log 子目录
rsync -av --exclude='*.tmp' --exclude='log/' /source/ /destination/
rsync -avz -e 'ssh -p 2222' /local/path/ user@host:/remote/path/
rsync -avz --bwlimit=500 /source/ /destination/
rsync -av --min-size=100K /source/ /destination/
使用
--partial参数保留已传部分:
rsync -av --partial /source/ /destination/
使用
-n参数进行模拟运行:
rsync -avn /source/ /destination/
-z启用压缩
--compress-level=N调整压缩等级(1~9)
--no-checksum
-n预演操作
--log-file=rsync.log输出日志
--chmod设置统一权限
rsync 是每位 Linux 用户必须掌握的重要工具之一,熟练运用可以:
通过本篇文章的学习,您已经掌握了 rsync 的基本操作和进阶技巧。建议在日常工作中不断尝试,深入挖掘其更多强大功能。