当前位置:首页>Linux>Linux 命令篇:rsync 高效的数据同步与备份工具

Linux 命令篇:rsync 高效的数据同步与备份工具

  • 2026-09-19 11:23:50
Linux 命令篇:rsync 高效的数据同步与备份工具
大家好!我是大虫子🐛!
这篇文章给大家介绍一下 Linux 系统中常用的文件同步和备份工具:rsync。它支持本地和远程数据同步,提供了灵活且高效的数据复制、备份和恢复方式。rsync使用 增量同步技术,可以只同步修改过的部分,还能帮你节省带宽和时间。
🎯基本语法
rsync [选项] 源路径 目标路径
  • 源路径:可以是本地路径,也可以是远程路径(格式:user@remote:/path)
  • 目标路径:可以是本地路径,也可以是远程路径(格式:user@remote:/path)
🎯常用选项说明
选项
含义
-v
显示详细输出(verbose),显示同步过程中的文件信息
-a
归档模式(archive),等同于 -rlptgoD,保留文件的所有属性
-r
递归处理子目录
-z
压缩文件数据,适合远程同步,节省带宽
-P
显示进度(progress)并启用部分传输(partial)
-e
指定远程 shell 程序(常用于指定 SSH)
--delete
删除目标路径中源路径不存在的文件
-n
执行模拟同步,不进行实际修改(dry-run)
-u
只更新比目标文件新的文件
-l
保留符号链接(links)
--exclude
排除某些文件或目录
🎯典型用法示例
1. 本地同步:同步两个本地目录
rsync -av /source/directory/ /destination/directory/
  • -a 归档模式,保留文件的所有属性(包括权限、时间戳、符号链接等)
  • -v 显示详细信息source/ 和 destination/ 后的 / 确保同步的是目录中的内容,而不是目录本身
2. 远程同步:从本地同步到远程服务器
rsync -avz /local/path/ user@remote:/remote/path/
  • -z 启用压缩,适用于通过网络传输时减少带宽占用
  • user@remote:/path 指定目标远程路径
3. 从远程同步到本地
rsync -avz user@remote:/remote/path/ /local/path/
将远程目录同步到本地目录。
4. 使用 SSH 进行远程同步
默认情况下,rsync 会使用 rsh 作为远程 shell,但如果你想使用 SSH(通常更安全),可以通过 -e 选项指定:
rsync -avz -e ssh user@remote:/remote/path/ /local/path/
5. 增量同步:只同步修改过的文件
rsync -av --ignore-existing /source/ /destination/
  • --ignore-existing 表示只同步源目录中新添加的文件,已存在的文件不会被覆盖
6. 删除目标目录中源目录没有的文件
rsync -av --delete /source/ /destination/
--delete 会删除目标目录中,源目录没有的文件,适用于备份时保持目标与源一致。
7. 模拟同步:执行“干跑”
在正式执行同步前,使用 -n 查看将同步哪些文件:
rsync -avz -n /source/ /destination/
-n 表示模拟执行,不会进行实际的文件修改。
8. 排除某些文件或目录
使用 --exclude 排除不需要同步的文件或目录:
rsync -av --exclude='*.tmp' --exclude='backup/' /source/ /destination/
  • --exclude='*.tmp' 排除所有 .tmp 文件
  • --exclude='backup/' 排除 backup 目录
🎯如何使用 rsync 进行备份
1. 备份文件到远程服务器
rsync -avz /local/path/ user@remote:/remote/backup/path/
将本地 /local/path/ 备份到远程服务器的 /remote/backup/path/
2. 增量备份:只同步更改过的文件
rsync -avz --link-dest=/previous/backup/ /source/ /new/backup/
--link-dest 指定前一个备份的路径,rsync 会使用硬链接,仅同步变化的部分。
3. 定期备份:结合 cron 使用
可以将 rsync 与 cron 结合,定期进行自动备份。比如,每天凌晨 1 点执行备份:
0 1 * * * rsync -avz /source/ user@remote:/backup/
🎯优化与注意事项
1. 优化性能:限制带宽使用
可以使用 --bwlimit 限制 rsync 使用的带宽。例如,限制带宽为 1000 KB/s:
rsync -avz --bwlimit=1000 /source/ /destination/
2. 使用 -P 显示进度
对于大文件或长时间的同步任务,可以使用 -P 查看进度:
rsync -avzP /source/ user@remote:/destination/
-P 是 --progress 和 --partial 的结合,显示进度并支持部分传输。
3. 文件权限与时间戳rsync
 会保留文件的权限、时间戳等元数据,但如果你需要修改或不保留某些属性,可以使用选项来控制:
  • --no-times:不保留时间戳
  • --no-perms:不保留权限
rsync 是非常适合搞运维的小伙伴!不仅支持本地和远程同步,而且提供了增量同步、压缩、排除、删除等多种功能,适用于各种备份和文件传输场景。

最新文章

随机文章