rsync 实战指南:高效文件同步与备份利器

一、rsync 简介

rsync(Remote Sync)是一款开源的快速增量文件同步工具,通过 增量传输算法仅同步差异部分,显著提升传输效率。其核心特性包括:

  • 高效同步:仅传输文件变化部分,节省带宽和时间。
  • 跨平台支持:支持 Linux、macOS、Windows(通过 Cygwin/WSL)。
  • 灵活模式:支持本地同步、远程 Shell 同步(SSH)和守护进程模式。
  • 数据一致性:保留文件权限、时间戳、软硬链接等属性。

二、安装与基础命令

1. 安装 rsync

  • Linux
    sudo yum install rsync
    

2. 基础语法

rsync [选项] 源路径 目标路径

三、核心场景实战

场景 1:本地文件夹同步

需求:将 /data/website 同步到 /backup/website,保留权限与属性。

rsync -avz --progress /data/website/ /backup/website
  • -a:归档模式(保留属性、递归目录)。
  • -v:显示详细过程。
  • -z:压缩传输。
  • --progress:显示传输进度。

场景 2:远程服务器同步(SSH 模式)

需求:将本地 /www 目录同步到远程服务器 user@192.168.1.100/var/www

rsync -avz -e ssh /www/ user@192.168.1.100:/var/www
  • -e ssh:指定使用 SSH 协议。

场景 3:排除特定文件

需求:同步时排除 .git 目录和 .log 文件。

rsync -avz --exclude='.git' --exclude='*.log' /src/ /dst/

场景 4:限速与断点续传

需求:限制传输带宽为 1MB/s,并启用断点续传。

rsync -avz --bwlimit=1024 --partial /src/ user@remote:/dst/
  • --bwlimit=1024:限速 1MB/s(单位 KB/s)。
  • --partial:保留未完成文件,支持续传。

四、高级技巧

1. 守护进程模式(无需 SSH)

步骤

  1. 配置服务端 /etc/rsyncd.conf
    [backup]
    path = /data/backup
    comment = Backup Module
    uid = nobody
    gid = nobody
    read only = no
    
  2. 启动服务:
    rsync --daemon
    
  3. 客户端同步:
    rsync -avz /src/ rsync://user@192.168.1.100/backup
    

2. 定时备份脚本(Cron)

脚本示例(保存为 backup.sh):

#!/bin/bash
LOG="/var/log/rsync_backup.log"
echo "Backup started at $(date)" >> $LOG
rsync -avz --delete /data/ /backup/ >> $LOG 2>&1
echo "Backup completed at $(date)" >> $LOG
  • --delete:删除目标目录中源目录不存在的文件)。
  • 配置 Cron 任务:
    crontab -e
    0 2 * * * /path/to/backup.sh  # 每天凌晨 2 点执行
    

五、常见问题与解决方案

1. 权限问题

现象:同步后文件权限被修改。
解决:使用 -a 选项保留权限,或手动指定 --chmod

2. 速度优化

技巧

  • 增加压缩级别:-z --compress-level=9
  • 使用 -W 选项跳过增量检查(适用于小文件)。

3. 排除规则不生效

检查

  • 确保 --exclude 在源路径前指定。
  • 使用 --exclude-from=file 批量排除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT成长日记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值