CentOS怎样实现数据备份与恢复
导读: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