rsync是linux下高效安全的增量备份工具,支持基础增量同步、硬链接快照、按时间筛选、ssh加密传输及校验和比对五种方法。

如果您需要在Linux系统中对文件夹进行高效且安全的增量备份,rsync是一个成熟可靠的工具。它通过比较源与目标文件的大小、修改时间及校验和(可选),仅传输发生变化的部分,从而减少带宽占用并提升备份效率。以下是实现该目标的具体方法:
一、使用rsync基础增量备份命令
rsync默认即支持增量同步,其核心机制是跳过已存在且内容未变的目标文件。启用归档模式(-a)可保留权限、时间戳、符号链接等元数据,结合--delete选项可确保目标目录与源目录严格一致。
1、打开终端,切换至具有读取权限的用户账户。
2、执行以下命令进行首次完整备份:
rsync -av /path/to/source/ /path/to/backup/
3、后续执行相同命令即可完成增量更新:
rsync -av /path/to/source/ /path/to/backup/
4、如需删除目标中已不存在于源中的文件,添加--delete参数:
rsync -av --delete /path/to/source/ /path/to/backup/
二、利用--link-dest实现硬链接式增量快照
该方法不重复存储相同文件,而是为每次备份创建独立目录,并将未变更文件通过硬链接指向前一次备份中的对应文件,极大节省磁盘空间,同时保留多个历史版本。
1、创建首个备份目录并执行完整同步:
rsync -a /path/to/source/ /path/to/backup/2024-01-01/
2、创建第二个备份目录,指定上一个备份为链接源:
rsync -a --link-dest=/path/to/backup/2024-01-01/ /path/to/source/ /path/to/backup/2024-01-02/
3、后续每次备份均以最新快照目录作为--link-dest参数值,例如:
rsync -a --link-dest=/path/to/backup/2024-01-02/ /path/to/source/ /path/to/backup/2024-01-03/
三、配合find与rsync按修改时间筛选增量范围
当只需备份最近N天内变更的文件时,可先用find定位变动文件,再交由rsync处理,避免全量扫描,提升执行速度并降低I/O压力。
1、确认源目录路径及所需时间窗口(如7天)。
2、生成变更文件列表并写入临时文件:
find /path/to/source -type f -mtime -7 -print0 > /tmp/rsync_files.list
3、调用rsync读取该列表进行增量同步:
rsync -av --files-from=/tmp/rsync_files.list --from0 / /path/to/backup/
4、执行完毕后清理临时文件:
rm /tmp/rsync_files.list
四、启用SSH加密通道保障传输安全
跨网络备份时,rsync可通过SSH协议加密传输所有数据,防止敏感信息在公网或不可信局域网中被截获,同时支持密钥认证以规避密码交互。
1、在目标主机上生成SSH密钥对(若尚未配置):
ssh-keygen -t ed25519
2、将公钥复制到远程备份服务器:
ssh-copy-id user@backup-server-ip
3、执行加密增量同步:
rsync -av -e "ssh -p 22" /path/to/source/ user@backup-server-ip:/path/to/backup/
4、如需跳过SSH主机密钥检查(仅限可信内网环境),添加-o StrictHostKeyChecking=no参数。
五、添加--checksum强制基于内容比对的增量判断
默认情况下rsync依据文件大小与修改时间决定是否跳过传输;若存在时间戳被篡改或NFS挂载导致时间精度丢失的情况,启用--checksum可强制逐块计算MD5校验和,确保仅真正变化的文件被同步。
1、确保源与目标文件系统支持快速校验和计算。
2、运行带校验和比对的增量命令:
rsync -av --checksum /path/to/source/ /path/to/backup/
3、注意:此模式会显著增加CPU与I/O负载,仅在时间戳不可靠的场景下启用。










