如何在CentOS上进行数据备份和恢复
导读:一、CentOS数据备份常用方法 1. tar命令(文件级备份,适合全量/增量) tar是CentOS中最常用的归档工具,可将系统或目录打包为压缩文件(如.tar.gz),保留文件权限、属性等信息。 全量备份命令: sudo tar cvp...
一、CentOS数据备份常用方法
1. tar命令(文件级备份,适合全量/增量)
tar是CentOS中最常用的归档工具,可将系统或目录打包为压缩文件(如.tar.gz
),保留文件权限、属性等信息。
全量备份命令:
sudo tar cvpzf /path/to/backup.tar.gz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys /
c
:创建新归档;v
:显示详细过程;p
:保留权限;z
:用gzip压缩;f
:指定文件名。--exclude
:排除无需备份的目录(如虚拟文件系统、临时目录)。
恢复命令:
sudo tar xvpfz /path/to/backup.tar.gz -C /
x
:解压;C
:指定解压目标目录(此处为根目录/
)。
2. rsync命令(增量备份,适合实时同步)
rsync通过对比源和目标文件的差异,仅传输变化的部分,适合定期增量备份或远程同步。
首次全量备份:
sudo rsync -aAXv --delete /source/directory/ /destination/directory/
-a
:归档模式(保留权限、时间戳等);-A
:保留ACL;-X
:保留扩展属性;--delete
:删除目标中源不存在的文件(保持严格同步)。
增量备份(利用硬链接节省空间):
sudo rsync -aAXv --delete --link-dest=/previous/backup/ /source/directory/ /new/backup/
--link-dest
:指向上次备份目录,相同文件通过硬链接引用,减少存储占用。
3. dd命令(磁盘/分区级备份,适合完整镜像)
dd可创建磁盘或分区的逐字节镜像,包含分区表、引导扇区等,适合灾难恢复(如磁盘损坏)。
备份命令:
sudo dd if=/dev/sda of=/path/to/backup.img bs=4M status=progress
if
:输入文件(源磁盘,如/dev/sda
);of
:输出文件(镜像文件);bs
:块大小(提高速度,如4M
);status=progress
:显示进度。
恢复命令:
sudo dd if=/path/to/backup.img of=/dev/sda bs=4M status=progress
⚠️ 注意:if
和of
参数顺序错误会导致目标磁盘数据覆盖,操作前务必确认设备名称!
4. Clonezilla(磁盘克隆工具,适合大规模备份)
Clonezilla是开源磁盘克隆工具,支持创建系统镜像并存储到外部设备(如U盘、NAS),支持增量备份和多设备恢复。
操作步骤:
- 准备启动盘:下载Clonezilla Live ISO,用Rufus或Etcher写入U盘。
- 启动备份:从U盘启动,选择“device-image”模式→“local_dev”(本地存储)→选择备份源磁盘→指定存储路径→开始备份。
- 恢复系统:再次从U盘启动,选择“device-image”模式→选择镜像文件→指定目标磁盘→完成恢复。
5. 数据库专用备份(针对MySQL/PostgreSQL)
数据库数据需单独备份,避免文件系统备份遗漏或损坏。
MySQL备份(mysqldump):
mysqldump -u [用户名] -p[密码] [数据库名] >
/path/to/backup.sql
- 示例:备份
mydb
数据库:mysqldump -u root -p mydb > /backups/mydb.sql
。
PostgreSQL备份(pg_dump):
pg_dump -U [用户名] -d [数据库名] >
/path/to/backup.sql
- 示例:备份
postgres
数据库:pg_dump -U postgres postgres > /backups/postgres.sql
。
二、CentOS数据恢复方法
1. 对应备份工具恢复
- tar备份:使用
tar xvpfz backup.tar.gz -C /
解压到根目录。 - rsync备份:用
rsync -av /backup/directory/ /
同步回原系统。 - dd镜像:用
dd if=backup.img of=/dev/sda
恢复磁盘镜像。 - Clonezilla:从启动盘进入,选择“restore”模式加载镜像文件恢复。
- 数据库:用
mysql -u root -p dbname < backup.sql
导入MySQL备份;psql -U postgres dbname < backup.sql
导入PostgreSQL备份。
2. 误删文件恢复
- extundelete(适用于ext3/ext4文件系统):
sudo yum install extundelete -y sudo extundelete /dev/sda1 --restore-file /path/to/deleted/file.txt
--restore-file
:指定误删文件路径;--restore-directory
:恢复整个目录。
- TestDisk(支持多种文件系统):
按向导选择“Analyze”→“Quick Search”→“Write”恢复分区表或文件。sudo yum install testdisk -y sudo testdisk
三、备份策略与注意事项
1. 备份策略
- 确定范围:明确需备份的系统文件(如
/etc
、/home
)、配置文件、数据库及用户数据。 - 频率设置:系统配置每日备份,用户数据每小时备份,数据库事务日志实时备份。
- 存储位置:本地存储(如外接硬盘)+ 远程存储(如云存储、NAS),避免单点故障。
- 定时任务:用
crontab -e
设置自动备份,例如每日凌晨1点备份:
(0 1 * * * /usr/bin/tar -czvf /backups/system_$(date +\%F).tar.gz --exclude=/proc --exclude=/lost+found /
%
需转义为\%
,避免cron解析错误)。
2. 注意事项
- 验证备份:定期测试备份文件的完整性(如解压
tar
文件、挂载dd
镜像),确保可恢复。 - 排除目录:备份时排除
/proc
、/sys
、/dev
等虚拟文件系统,减少备份体积和错误。 - 存储安全:备份介质需存放在防火、防潮、防磁的地方,远程存储需加密传输(如SSH、SFTP)。
- 文档记录:记录备份时间、工具、存储位置及恢复步骤,便于紧急情况快速处理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在CentOS上进行数据备份和恢复
本文地址: https://pptw.com/jishu/730027.html