rsync 增量备份与远程同步:企业级实践
rsync 是高效的文件同步工具,支持增量传输和多种协议。
1. 基本用法
# 本地同步(-a 归档模式,-v 详细)
rsync -av /source/ /dest/
# 远程同步(推)
rsync -avz -e ssh /local/ user@host:/remote/
# 远程同步(拉)
rsync -avz user@host:/remote/ /local/2. 增量备份核心选项
# --delete:删除目标端多余文件(保持完全一致)
rsync -av --delete /source/ /dest/
# --link-dest:硬链接到历史备份(节省空间)
rsync -av --link-dest=/backup/prev /source/ /backup/$(date +%Y%m%d)3. 过滤与排除
# 排除文件
rsync -av --exclude="*.tmp" --exclude="cache/" /source/ /dest/
# 从文件读取排除列表
rsync -av --exclude-from=exclude.list /source/ /dest/4. 限速与压缩
# 限速 10MB/s
rsync -av --bwlimit=10240 /source/ /dest/
# 压缩传输(节省带宽)
rsync -avz /source/ user@host:/remote/5. 安全与权限
# 保持所有属性(所有者、组、权限、时间)
rsync -a --chown=user:group /source/ /dest/
# 使用 SSH 协议(默认)
rsync -av -e "ssh -p 2222" /source/ user@host:/remote/6. 生产环境脚本
#!/bin/bash
SOURCE="/data"
BACKUP="/backup/$(date +%Y%m%d_%H%M%S)"
LINK_DEST="/backup/latest"
rsync -av --delete --link-dest=$LINK_DEST $SOURCE $BACKUP
rm -f $LINK_DEST && ln -s $BACKUP $LINK_DEST 