首页主机资讯CentOS怎样实现数据备份与恢复

CentOS怎样实现数据备份与恢复

时间2025-10-11 09:36:04发布访客分类主机资讯浏览999
导读:CentOS数据备份与恢复实现指南 一、数据备份方法 1. 使用tar命令进行全量备份 tar是CentOS内置的归档工具,适合备份整个系统或指定目录,支持gzip/bzip2压缩,可排除无需备份的目录(如/proc、/sys)。 备份命令...

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-all
    
    恢复的文件会保存在当前目录下的RECOVERED_FILES文件夹中。

3. 使用TestDisk恢复分区表或文件

TestDisk支持恢复丢失的分区表、引导扇区,以及误删除的文件(适用于ext2/ext3/ext4、NTFS等文件系统)。
操作步骤

  • 安装工具:
    sudo yum install testdisk -y
    
  • 运行工具:
    sudo testdisk
    
  • 选择磁盘(如/dev/sda),按提示选择分区类型(Intel/EFI);
  • 选择“Advanced”→“Undelete”(恢复文件)或“Recover Partition Table”(恢复分区表);
  • 预览并选择需要恢复的文件/分区,复制到安全位置(如外部硬盘)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS怎样实现数据备份与恢复
本文地址: https://pptw.com/jishu/723308.html
CentOS系统中如何清理垃圾文件 CentOS下Golang日志的备份与恢复方法是什么

游客 回复需填写必要信息