Linux系统作为服务器领域的主流操作系统,数据备份和恢复是保障业务稳定运行的基础操作,不同的业务场景需要选择不同的备份方案,掌握多种备份恢复方法能有效应对各类数据风险。

基于tar命令的归档备份与恢复
tar是Linux系统自带的归档工具,支持将多个文件或目录打包成单个归档文件,同时可以结合gzip、bzip2等压缩算法减小备份文件体积,适合全量备份场景。
tar备份操作
使用tar进行目录全量备份的基本命令如下,以下示例将/data/web目录备份到/backup/web_backup.tar.gz:
# 备份/data/web目录,使用gzip压缩,显示备份过程 tar -czvf /backup/web_backup.tar.gz /data/web # 参数说明: # -c 创建新的归档文件 # -z 使用gzip压缩归档文件 # -v 显示备份过程的文件信息 # -f 指定归档文件的路径
tar恢复操作
当需要恢复备份数据时,使用以下命令将归档文件解压到目标目录:
# 将备份文件解压到根目录,恢复原始目录结构 tar -xzvf /backup/web_backup.tar.gz -C / # 参数说明: # -x 从归档文件中提取文件 # -C 指定解压的目标目录
基于rsync的增量同步备份
rsync是Linux下常用的文件同步工具,支持增量备份,只会传输发生变化的数据,大幅减少备份时间和存储空间占用,适合需要频繁备份的场景。
rsync备份操作
以下示例将本地/data/db目录同步到备份目录/backup/db,首次执行为全量备份,后续执行为增量备份:
# 同步目录,保留文件权限、时间戳等属性,删除目标端多余文件 rsync -av --delete /data/db/ /backup/db/ # 参数说明: # -a 归档模式,保留文件权限、所有者、时间戳等属性 # -v 显示同步过程信息 # --delete 同步时删除目标端存在但源端不存在的文件,保持两端一致
rsync恢复操作
恢复时只需将备份目录同步回原始目录即可:
# 将备份目录同步回原始目录 rsync -av /backup/db/ /data/db/
基于dd的磁盘克隆备份与恢复
dd是低级别的数据复制工具,可以直接对磁盘或分区进行逐扇区复制,适合整盘或分区的完整备份,备份内容包括分区表、引导信息等。
dd备份操作
以下示例将/dev/sda1分区备份为镜像文件:
# 备份sda1分区到镜像文件,显示进度 dd if=/dev/sda1 of=/backup/sda1.img bs=4M status=progress # 参数说明: # if 指定输入文件(源设备) # of 指定输出文件(备份镜像) # bs 设置每次读写的块大小 # status=progress 显示备份进度
dd恢复操作
恢复时需要将镜像文件写回对应的磁盘或分区:
# 将镜像文件恢复到sda1分区 dd if=/backup/sda1.img of=/dev/sda1 bs=4M status=progress
不同备份方式的适用场景对比
以下是三种常用备份方式的特点对比,可根据实际需求选择:
| 备份方式 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| tar归档备份 | 全量备份、离线归档 | 系统自带、操作简单、压缩率高 | 不支持增量备份、恢复速度较慢 |
| rsync同步备份 | 频繁增量备份、异地同步 | 增量传输、效率高、支持远程同步 | 不适合整盘备份、依赖文件属性 |
| dd磁盘克隆 | 整盘/分区备份、系统迁移 | 完整复制、包含引导信息 | 备份文件体积大、不支持增量 |
备份注意事项
- 备份前确认源数据完整性,避免备份损坏的数据
- 备份文件建议存储在与源数据不同的磁盘或异地存储,避免单点故障
- 定期测试备份文件的恢复流程,确保备份可用
- 重要数据建议采用全量备份加增量备份的组合策略,平衡备份效率和恢复成本