CentOS数据备份与恢复实现指南
一、数据备份方法
1. 使用tar命令进行全量备份
tar是CentOS内置的归档工具,适合备份整个系统或指定目录,支持gzip/bzip2压缩,可排除无需备份的目录(如/proc、/sys)。
备份命令示例:
sudo tar cvpzf /backup/centos_backup_$(date +%Y%m%d).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/mnt --exclude=/media /
参数说明:
c:创建新的归档文件;v:显示详细过程;p:保留文件权限;z:用gzip压缩;f:指定备份文件路径。
注意:需提前创建备份目录(如/backup),并替换/为需要备份的具体目录(如/home)。
2. 使用rsync命令进行增量备份
rsync通过对比源和目标文件的修改时间、大小,仅传输变化的部分,适合定期同步数据(如每日增量、每周全量)。
首次全量备份:
rsync -avz --delete /source/directory/ /destination/directory/
后续增量备份(结合--link-dest实现硬链接,节省空间):
rsync -avz --delete --link-dest=/destination/last_backup /source/directory/ /destination/directory/new_backup/
参数说明:
a:归档模式(保留权限、时间等);v:显示详细过程;z:压缩传输;--delete:删除目标目录中源目录不存在的文件(保持同步);--link-dest:指定上一次备份目录,相同文件创建硬链接。
3. 使用dd命令进行磁盘镜像备份
dd用于创建磁盘或分区的完整镜像,适合备份整个系统(包括引导分区、分区表),恢复时可还原到相同或更大容量的磁盘。
备份命令:
sudo dd if=/dev/sda of=/backup/centos_disk.img bs=4M status=progress
恢复命令:
sudo dd if=/backup/centos_disk.img of=/dev/sda bs=4M status=progress
参数说明:
if:输入文件(源磁盘/分区);of:输出文件(目标备份文件或磁盘);bs:块大小(提高传输效率,常用4M);status=progress:显示进度。
4. 使用Clonezilla进行磁盘克隆
Clonezilla是一款开源磁盘克隆工具,支持备份整个系统到镜像文件或直接克隆到其他磁盘,适合大规模系统部署。
操作步骤:
- 下载Clonezilla ISO镜像,制作启动盘(如使用Rufus);
- 从启动盘启动系统,选择“device-image”模式(备份到镜像文件);
- 选择备份源磁盘(如
/dev/sda)和目标存储路径(如网络共享、外部硬盘); - 等待备份完成(生成
.img文件)。
恢复步骤: - 从Clonezilla启动盘启动,选择“device-image”模式;
- 选择备份镜像文件和目标磁盘(如
/dev/sdb); - 按照提示确认恢复,等待完成。
5. 数据库备份(mysqldump)
对于MySQL/MariaDB数据库,使用mysqldump工具导出数据库结构和数据,支持压缩和远程备份。
备份命令:
mysqldump -u root -p --all-databases --single-transaction --quick --add-drop-database | gzip > /backup/all_databases_$(date +%Y%m%d).sql.gz
参数说明:
--all-databases:备份所有数据库;--single-transaction:使用事务保证一致性(InnoDB适用);--quick:逐行导出数据,减少内存占用;--add-drop-database:导出前添加DROP DATABASE语句(避免恢复时冲突);| gzip:压缩备份文件。
恢复命令:
gunzip < /backup/all_databases_$(date +%Y%m%d).sql.gz | mysql -u root -p
二、数据恢复方法
1. 从备份文件恢复
- tar备份恢复:
若备份的是系统根目录,需从Live CD或救援模式启动(避免覆盖正在运行的系统),然后执行:sudo tar xvpfz /backup/centos_backup_$(date +%Y%m%d).tar.gz -C / - rsync备份恢复:
直接使用rsync将备份目录同步到目标位置:rsync -avz /backup/directory/ /source/directory/ - 数据库备份恢复:
参考上述mysqldump恢复命令,确保数据库服务已停止(避免数据冲突)。
2. 使用extundelete恢复误删除文件
extundelete适用于ext3/ext4文件系统,需在未写入新数据的情况下使用(立即卸载分区)。
安装与恢复步骤:
- 安装工具:
sudo yum install extundelete -y - 卸载分区(若分区为
/dev/sdb1,挂载在/mnt/data):sudo umount /mnt/data - 恢复单个文件(如
/mnt/data/test.txt):sudo extundelete /dev/sdb1 --restore-file /mnt/data/test.txt - 恢复整个分区:
恢复的文件会保存在当前目录下的sudo extundelete /dev/sdb1 --restore-allRECOVERED_FILES文件夹中。
3. 使用TestDisk恢复分区表或文件
TestDisk支持恢复丢失的分区表、引导扇区,以及误删除的文件(适用于ext2/ext3/ext4、NTFS等文件系统)。
操作步骤:
- 安装工具:
sudo yum install testdisk -y - 运行工具:
sudo testdisk - 选择磁盘(如
/dev/sda),按提示选择分区类型(Intel/EFI); - 选择“Advanced”→“Undelete”(恢复文件)或“Recover Partition Table”(恢复分区表);
- 预览并选择需要恢复的文件/分区,复制到安全位置(如外部硬盘)。
以上就是关于“CentOS怎样实现数据备份与恢复”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm