三二互联专业提供速度最快最稳定的美国服务器、香港服务器。中美直连,亚洲优化![ 代理登陆 ] [ 付款方式 ] [ 找回密码 ][ 电子协议责任书 ]
硬件资源保障

采用高配品牌服务器

主流强悍CPU配置

确保服务高速稳定运行

中美直连线路

中美直连亚洲优化

采用中国CN2骨干网络

保证速度飞快稳定高效

如何使用rsync进行文件级备份?

美国、香港服务器

如何使用rsync进行文件级备份?

12-27   来源:

 rsync 是 Linux 下高效的文件级备份工具,支持增量备份(仅同步变化的文件)、跨服务器备份,且能保留文件权限、时间戳等属性。以下是 本地备份 和 远程备份 的完整实操步骤,包含核心参数、备份脚本和验证方法。

一、 核心优势与前置准备
rsync 核心优势
增量备份:首次全量备份,后续仅同步修改 / 新增的文件,节省带宽和时间。
保留属性:默认保留文件的权限、属主、时间戳等元数据。
断点续传:传输中断后可继续,适合大文件备份。
跨平台:支持本地→本地、本地→远程、远程→本地备份。
前置准备
检查是否安装 rsync:rsync --version,未安装则执行:
bash
运行
# Ubuntu/Debian
sudo apt install rsync -y
# CentOS/RHEL
sudo yum install rsync -y
确定备份源和目标:
源目录:待备份的文件 / 目录(如 /data)。
目标目录:备份存储位置(本地目录或远程服务器目录)。
二、 本地备份(源和目标在同一服务器)
1. 基础备份命令
命令格式:rsync [参数] 源目录 目标目录关键注意事项:
源目录带 /(如 /data/):同步目录内的文件到目标目录。
源目录不带 /(如 /data):同步目录本身到目标目录。
示例 1:备份 /data 目录到 /backup 目录
bash
运行
# 推荐参数组合:增量备份+保留属性+显示进度
sudo rsync -av --progress /data /backup
执行后,/backup 下会生成 /backup/data 目录,包含源目录所有文件。
示例 2:仅同步 /data 内的文件(不含 data 目录本身)
bash
运行
sudo rsync -av --progress /data/ /backup/data_bak
2. 核心参数说明
参数 作用
-a 归档模式,等价于 -rlptgoD,必选,保留文件权限、属主、软链接等属性
-v 详细输出,显示同步的文件列表
--progress 显示传输进度,适合大文件备份
-z 压缩传输,节省带宽(远程备份推荐用)
--delete 同步时删除目标目录中源目录不存在的文件(保持源和目标完全一致,慎用)
--exclude=PATTERN 排除指定文件 / 目录(如 --exclude=*.log 排除日志文件)
--include=PATTERN 优先包含指定文件 / 目录,需配合 --exclude 使用
3. 进阶用法:带过滤规则的备份
需求:备份 /data,但排除日志文件(*.log)和临时目录(tmp)
bash
运行
sudo rsync -av --progress --exclude=*.log --exclude=tmp/ /data/ /backup/data_bak
三、 远程备份(本地→远程服务器)
通过 SSH 协议传输,无需额外配置服务,安全可靠。
1. 命令格式
bash
运行
rsync -avz --progress 源目录 远程用户@远程IP:远程目标目录
远程用户:需有远程服务器的读写权限。
远程 IP:目标服务器的 IP 或域名。
-z:压缩传输,减少网络带宽占用。
2. 实操示例
将本地 /data 备份到远程服务器 192.168.1.100 的 /backup 目录(远程用户为 root):
bash
运行
sudo rsync -avz --progress /data root@192.168.1.100:/backup
执行后会提示输入远程服务器的 root 密码,验证通过后开始同步。
3. 免密备份(自动化必备)
手动输入密码无法实现定时备份,需配置 SSH 免密登录:
本地服务器生成 SSH 密钥对(无密钥时执行):
bash
运行
ssh-keygen -t rsa -b 2048  # 一路回车,不设置密码
将公钥复制到远程服务器:
bash
运行
ssh-copy-id root@192.168.1.100
验证免密登录:ssh root@192.168.1.100,无需密码即可登录,之后 rsync 备份也无需输入密码。
四、 定时自动备份(配置 crontab)
结合 crontab 实现每日 / 每周自动备份,形成自动化备份方案。
1. 编写备份脚本
创建脚本文件 /usr/local/bin/rsync_backup.sh:
bash
运行
#!/bin/bash
# 备份日志路径
LOG_FILE="/var/log/rsync_backup.log"
# 备份源
SOURCE_DIR="/data"
# 本地目标(若远程备份则改为远程地址)
TARGET_DIR="/backup/data_$(date +%Y%m%d)"
# 创建目标目录
mkdir -p $TARGET_DIR
# 执行备份
rsync -av --progress --delete $SOURCE_DIR/ $TARGET_DIR >> $LOG_FILE 2>&1
# 清理 7 天前的备份(可选)
find /backup -name "data_*" -type d -mtime +7 -delete >> $LOG_FILE 2>&1
$(date +%Y%m%d):为备份目录添加日期后缀,便于区分版本。
find ... -mtime +7 -delete:自动删除 7 天前的备份,节省磁盘空间。
赋予脚本执行权限
bash
运行
sudo chmod +x /usr/local/bin/rsync_backup.sh
配置 crontab 定时任务
bash
运行
sudo crontab -e
添加以下内容(每天凌晨 2 点执行备份):
bash
运行
0 2 * * * /usr/local/bin/rsync_backup.sh
保存退出后,crontab 会自动生效。
五、 备份验证(确保备份有效)
备份后必须验证数据完整性,避免备份失效。
查看备份文件列表
bash
运行
ls -l /backup/data_bak  # 本地备份
# 远程备份则登录远程服务器查看
ssh root@192.168.1.100 "ls -l /backup/data"
对比源文件和备份文件的 MD5 值
随机选择一个关键文件,对比校验值:
bash
运行
# 源文件 MD5
md5sum /data/important.conf
# 备份文件 MD5
md5sum /backup/data_bak/important.conf
若两个 MD5 值一致,说明文件备份完整。
测试恢复文件
模拟数据丢失,从备份恢复文件:
bash
运行
# 恢复单个文件
sudo rsync -av /backup/data_bak/important.conf /data/
# 恢复整个目录
sudo rsync -av /backup/data_bak/ /data/

三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快

上一篇:如何验证备份数据的完整性? 下一篇:如何在调整分区大小过程中避免数据丢失?

美国GIA服务器三二互联版权所有 WWW.250.cc 2008-2015 All Rights Reserved
三二互联 - 专业的美国C3服务器、香港vps、抗DOOS流量清洗、云备份系统、网站加速系统、美国GIA服务器和香港云服务器产品提供商
三二互联24小时在线工单系统为您提供全面、专业、周到的技术支持与服务
咨询热线:400-679-9994(免长话费)