首页 > 运维 > linux运维 > 正文

如何同步Linux目录 rsync增量备份实战

P粉602998670
发布: 2025-08-11 13:40:02
原创
1020人浏览过

rsync 可实现高效目录增量同步与备份,答案为:使用 rsync 结合 -a、-v、--delete 等参数进行本地或远程同步,1. 本地同步需注意源路径末尾斜杠含义;2. 可通过 --exclude 或 --exclude-from 排除特定文件;3. 远程同步使用 -e ssh 支持加密传输,可指定端口;4. 配合 --delete 实现镜像备份,建议先用 --dry-run 模拟;5. 结合 cron 定时执行脚本实现自动化;6. 使用 --backup --suffix 保留旧版本文件;7. 利用 --link-dest 实现快照式备份节省空间;8. 需监控磁盘空间并确保运行用户有足够权限,最终构建稳定可靠的备份体系。

如何同步Linux目录 rsync增量备份实战

在Linux系统运维中,目录同步和增量备份是常见需求。

rsync
登录后复制
是一个强大且高效的工具,支持本地和远程数据同步,具备增量备份、断点续传、权限保留等特性。下面通过实战场景,详细介绍如何使用
rsync
登录后复制
实现目录的增量同步与备份。


一、rsync 增量同步原理

rsync
登录后复制
的核心优势在于“增量同步”:它不会每次都复制全部文件,而是通过对比源目录和目标目录的文件大小、修改时间或校验和,仅传输发生变化的部分(甚至文件的某一部分),从而大幅节省带宽和时间。

它使用“rsync算法”实现差异同步,适用于:

  • 本地目录同步
  • 远程服务器备份
  • 定时自动备份(结合 cron)

二、基本语法与常用参数

rsync [选项] 源路径 目标路径
登录后复制

常用参数说明:

  • -a
    登录后复制
    :归档模式,保留权限、时间戳、软链接、递归等(最常用)
  • -v
    登录后复制
    :显示详细过程(verbose)
  • -z
    登录后复制
    :压缩传输数据(适合远程)
  • -h
    登录后复制
    :以人类可读格式显示
  • --delete
    登录后复制
    :删除目标中源不存在的文件(保持完全一致)
  • --exclude
    登录后复制
    :排除特定文件或目录
  • -P
    登录后复制
    :显示进度并支持断点续传(等价于
    --partial --progress
    登录后复制

三、实战场景示例

场景1:本地目录增量同步

/data/source/
登录后复制
同步到
/backup/target/
登录后复制

rsync -av /data/source/ /backup/target/
登录后复制
注意:源路径末尾的 / 很关键。 /source/ 表示同步目录下的内容 /source 表示同步整个目录本身

场景2:排除临时文件和日志

避免同步缓存或日志文件:

rsync -av --exclude='*.log' --exclude='tmp/' --exclude='cache/' /data/source/ /backup/target/
登录后复制

也可以使用文件方式排除:

rsync -av --exclude-from='/path/to/exclude-list.txt' /data/source/ /backup/target/
登录后复制

exclude-list.txt
登录后复制
内容示例:

*.tmp
*.log
/temp/
/cache/
.DS_Store
登录后复制

场景3:远程备份到另一台服务器

将本地数据同步到远程服务器的

/backup/
登录后复制
目录:

rsync -avz -e ssh /data/source/ user@192.168.1.100:/backup/target/
登录后复制
  • -z
    登录后复制
    :压缩传输
  • -e ssh
    登录后复制
    :通过 SSH 加密传输(默认)

若使用非标准 SSH 端口(如 2222):

笔目鱼英文论文写作器
笔目鱼英文论文写作器

写高质量英文论文,就用笔目鱼

笔目鱼英文论文写作器 87
查看详情 笔目鱼英文论文写作器
rsync -avz -e "ssh -p 2222" /data/source/ user@192.168.1.100:/backup/target/
登录后复制

场景4:保持目标目录与源完全一致(镜像备份)

使用

--delete
登录后复制
实现镜像同步,删除目标中多余的文件:

rsync -av --delete /data/source/ /backup/target/
登录后复制

⚠️ 警告:此操作有风险,建议首次使用前加

--dry-run
登录后复制
模拟执行:

rsync -av --delete --dry-run /data/source/ /backup/target/
登录后复制

可预览将要执行的操作,确认无误后再去掉

--dry-run
登录后复制


四、自动化备份:结合 cron 定时执行

创建备份脚本

/usr/local/bin/backup.sh
登录后复制

#!/bin/bash
SOURCE="/data/source/"
TARGET="/backup/target/"
LOGFILE="/var/log/rsync-backup.log"
EXCLUDE="/etc/rsync-exclude.txt"

DATE=$(date +"%Y-%m-%d %H:%M:%S")
echo "[$DATE] 开始同步..." >> $LOGFILE

rsync -av --delete --exclude-from="$EXCLUDE" "$SOURCE" "$TARGET" >> $LOGFILE 2>&1

RESULT=$?
if [ $RESULT -eq 0 ]; then
    echo "[$(date)] 同步成功" >> $LOGFILE
else
    echo "[$(date)] 同步失败,错误码: $RESULT" >> $LOGFILE
fi
登录后复制

赋予执行权限:

chmod +x /usr/local/bin/backup.sh
登录后复制

添加定时任务(每天凌晨2点执行):

crontab -e
登录后复制

添加行:

0 2 * * * /usr/local/bin/backup.sh
登录后复制

五、进阶技巧与注意事项

  • 使用

    --backup
    登录后复制
    --suffix
    登录后复制
    实现版本保留

    可保留被覆盖的旧文件:

    rsync -av --backup --suffix=_bak /source/ /target/
    登录后复制
  • 使用

    --link-dest
    登录后复制
    实现“快照式”备份
    节省空间,类似 rsnapshot 的原理:

    DST="/backup/snapshots"
    TODAY="$DST/$(date +%Y%m%d)"
    YESTERDAY="$DST/$(date -d yesterday +%Y%m%d)"
    
    rsync -av --link-dest="$YESTERDAY" /data/source/ "$TODAY/"
    登录后复制

    若前一天快照存在,未修改文件会硬链接复用,节省空间。

  • 确保目标磁盘有足够空间
    增量备份虽高效,但长期运行仍需监控磁盘使用。

  • 权限问题
    若涉及系统文件,建议用

    root
    登录后复制
    或具备足够权限的用户运行。


基本上就这些。

rsync
登录后复制
看似简单,但灵活组合参数后功能非常强大。掌握好增量同步、排除规则、远程传输和自动化,就能构建稳定可靠的备份体系。不复杂,但细节决定成败。

以上就是如何同步Linux目录 rsync增量备份实战的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号