首页主机资讯如何在CentOS上进行数据备份和恢复

如何在CentOS上进行数据备份和恢复

时间2025-10-20 13:42:04发布访客分类主机资讯浏览537
导读:一、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

⚠️ 注意ifof参数顺序错误会导致目标磁盘数据覆盖,操作前务必确认设备名称!

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(支持多种文件系统):
    sudo yum install testdisk -y
    sudo testdisk
    
    按向导选择“Analyze”→“Quick Search”→“Write”恢复分区表或文件。

三、备份策略与注意事项

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
如何优化CentOS中LibOffice性能 如何在CentOS上安装和配置Web服务器

游客 回复需填写必要信息