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
rsync
rsync
它使用“rsync算法”实现差异同步,适用于:
rsync [选项] 源路径 目标路径
常用参数说明:
-a
-v
-z
-h
--delete
--exclude
-P
--partial --progress
将
/data/source/
/backup/target/
rsync -av /data/source/ /backup/target/
注意:源路径末尾的 / 很关键。 /source/ 表示同步目录下的内容 /source 表示同步整个目录本身
避免同步缓存或日志文件:
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
将本地数据同步到远程服务器的
/backup/
rsync -avz -e ssh /data/source/ user@192.168.1.100:/backup/target/
-z
-e ssh
若使用非标准 SSH 端口(如 2222):
rsync -avz -e "ssh -p 2222" /data/source/ user@192.168.1.100:/backup/target/
使用
--delete
rsync -av --delete /data/source/ /backup/target/
⚠️ 警告:此操作有风险,建议首次使用前加
模拟执行:--dry-run登录后复制
rsync -av --delete --dry-run /data/source/ /backup/target/
可预览将要执行的操作,确认无误后再去掉
--dry-run
创建备份脚本
/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中文网其它相关文章!
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号