备份与恢复
在生产环境中,数据备份与恢复是系统运维中最关键的部分之一。
无论是系统更新、配置更改还是迁移操作,可靠的备份机制都是确保安全的前提。
一、备份策略概述
备份可以分为以下几种类型:
| 类型 | 内容 | 说明 |
|---|---|---|
| 完整备份 | 所有数据 | 占用空间大,但恢复最快 |
| 增量备份 | 自上次备份以来更改的数据 | 节省空间与时间 |
| 差异备份 | 自上次完整备份以来更改的数据 | 中间方案 |
| 系统镜像备份 | 包含整个系统 | 用于灾难恢复或迁移 |
推荐策略:
- 每周进行一次完整备份;
- 每天执行一次增量备份;
- 将备份存储在远程或外部设备上。
二、使用 tar 进行简单备份
最基础的方式是使用 tar 命令打包备份。
1. 备份目录
sudo tar -czvf /backup/etc-backup-$(date +%F).tar.gz /etc
2. 备份整个系统(排除无关目录)
sudo tar -czvf /backup/system-backup-$(date +%F).tar.gz \
--exclude=/proc --exclude=/sys --exclude=/dev --exclude=/tmp \
--exclude=/run --exclude=/mnt --exclude=/media --exclude=/lost+found \
/
3. 解压恢复
sudo tar -xzvf /backup/system-backup-2025-10-20.tar.gz -C /
三、使用 rsync 增量备份
rsync 是 Linux 中最常用的增量备份工具。
1. 本地目录同步
rsync -av --delete /home/ /backup/home/
2. 远程服务器备份
rsync -avz --delete /var/www/ [email protected]:/backup/web/
3. 定时自动备份(crontab)
sudo crontab -e
添加任务:
0 3 * * * rsync -av --delete /etc/ /backup/etc/
表示每天凌晨 3 点执行一次备份。
四、使用 Timeshift(系统快照工具)
Timeshift 是一个类似 Windows “系统还原”的工具,支持 Btrfs 与 RSYNC 模式。
1. 安装 Timeshift
sudo dnf install -y timeshift
2. 创建快照
sudo timeshift --create --comments "Before kernel update"
3. 列出快照
sudo timeshift --list
4. 恢复快照
sudo timeshift --restore
五、数据库备份(MySQL / PostgreSQL)
MySQL
mysqldump -u root -p mydatabase > /backup/mydatabase.sql
恢复:
mysql -u root -p mydatabase < /backup/mydatabase.sql
PostgreSQL
pg_dump mydatabase > /backup/mydatabase.sql
恢复:
psql mydatabase < /backup/mydatabase.sql
六、系统镜像备份(Clonezilla)
Clonezilla 是一个磁盘级备份与还原工具,适合整机迁移。
- 下载并制作 Clonezilla 启动盘;
- 启动系统后选择
device-image模式; - 将系统分区克隆到外部硬盘;
- 需要恢复时选择“Restore Disk”选项。
七、备份自动化与远程存储
可以使用 rclone 将备份上传到云端:
rclone sync /backup remote:rocky-backup
支持平台:Google Drive、OneDrive、S3、Aliyun OSS 等。
八、备份与恢复最佳实践
| 场景 | 推荐方案 |
|---|---|
| 系统更新前 | Timeshift 快照或 tar 完整备份 |
| 网站/数据库服务器 | rsync + MySQL/PostgreSQL dump |
| 定期备份 | cron + rsync 自动任务 |
| 云端存储 | rclone 同步到远程 |
| 灾难恢复 | Clonezilla 镜像还原 |
九、总结
tar适合简单备份;rsync适合增量与自动化;Timeshift适合系统级回滚;Clonezilla适合完整系统迁移;- 建议结合多种方式保障安全。
💡 提示:在执行系统更新或数据库迁移前,务必先创建快照或完整备份,以便快速回滚。
相关内容
- Rocky Linux 与 RHEL 的区别 详细分析 Rocky Linux 与 Red Hat Enterprise Linux (RHEL) 的区别,包括开发背景、兼容性、更新策略、社区支持和企业使用...
- 定时任务(cron) 本文详细介绍 Rocky Linux 中使用 cron 定时任务的配置方法,包括 crontab 基础语法、系统任务调度、日志管理与常见问题排查。
- 数据库服务(MySQL / PostgreSQL) 在 Rocky Linux 中安装和配置 MySQL 与 PostgreSQL 数据库服务,涵盖安装命令、防火墙配置、开机自启和基础安全设置。
- Python 与 Node.js 环境配置 在 Rocky Linux 中安装与管理 Python、pip、Node.js 与 npm 环境,涵盖多版本管理、全局模块安装、国内源配置等实用技巧。
- 磁盘与分区管理(lsblk、fdisk) 详细介绍 Rocky Linux 中使用 lsblk 和 fdisk 工具进行磁盘和分区管理的方法,包括查看磁盘信息、创建分区、删除分区等操作
- 使用 dnf 管理软件包 详细介绍 Rocky Linux 中 dnf 包管理器的使用方法,包括安装、更新、删除软件包等操作