Linux 备份与恢复
1.备份概述
1.1 Linux需要备份的数据目录
系统目录
- /root/
- /home/
- /var/spool/mail/
- /etc/
- 其他目录
安装服务的数据
- apache需要备份的数据
- 配置文件
- 网页主目录
- 日志文件
- mysql需要备份的数据
- 源码包 安装的mysql: /usr/oca/mysq/data/
- RPM包 安装的mysql: /var/lib/mysqI/
1.2 备份策略
完全备份
完全备份就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录。
特点:恢复时比较方便,只需要恢复一次。
增量备份
第一次完全备份,之后每次备份只备份新增的数据。
特点:恢复时比较麻烦,需要挨个恢复。
差异备份
第一次完全备份,之后每次都备份完全备份不存在的数据。
特点:相比完全备份策略,只少一个完全备份的数据量。
2. dump 和 restore 命令
2.1 dump 命令
dump [选项] 备份之后的文件名原文件或目录
选项
-
-level
//就是我们说的 0-9 十个备份级别 -
-f
文件名 //指定备份之后的文件名. -
-u
//备份成功之后,把备份时间记录在/etc/dumpdates文件 -
-v
//显示备份过程中更多的输出信息 -
-j
//调用bzlib库压缩备份文件,其实就是把备份文件压缩为.bz2格式 -
-W
//显示允许被dump的分区的备份等级及备份时间
备份级别 | 作用 |
0 | 完全备份 |
1 | 增量备份 |
准备条件
# rpm -qa | grep dump //抓包命令,确定 yum 源可以用
# yum -y install dump //安装dump
df -h
//查看分区大小
ll -h
//查看文件大小
案例:备份分区
-
dump -0uj -f /root/boot.bak.bz2 /boot/
#先执行一次完全备份,并压缩和更新备份时间。 -
cat /etc/dumpdates
#查看备份时间文件。 -
cp install.log /boot/
#复制日志文件到 /boot 分区。 -
dump -1uj -f /root/boot.bak1.bz2 /boot/
#增量备份 /boot 分区,并压缩。 -
dump -W
#查询分区的备份时间及备份级别的。
备份文件或目录
dump -0j -f /root/etc.dump.bz2 /etc/
#完全备份 /etc/ 目录,只能使用0级别进行完全备份,而不再支持增量备份。
2.2 restore 命令
restore [模式选项] [选项]
模式选项: restore命 令常用的模式有以下四种,这四个模式不能混用。
-
-C
//比较备份数据和实际数据的变化 -
-i
//进入交互模式,手工选择需要恢复的文件。 -
-t
//查看模式,用于查看备份文件中拥有哪些数据。 -
-r
//还原模式,用于数据还原。
选项:
-
-f
//指定备份文件的文件名
比较备份数据和实际数据的变化
- 把 boot 目录中内核镜像文件改个名字
# mv /boot/vmlinuz-2.6.32-279.e16.i686 /boot/vmlinuz-2.6.32-279.el6.i686.bak
- restore 发现内核镜像文件丢失
# restore -C -f /root/boot.bak.bz2
还原模式
- 还原 boot.bak.bz2 分区备份,先还原完全备份的数据
# mkdir boot.test
# cd boot.test/
# restore -r -f /root/boot.bak.bz2 #解压缩
- 恢复增量备份数据
# restore -r -f /root/boot.bak1.bz2
- 还原 /etc/ 目录的备份 etc.dump.bz2
restore -r -f etc.dump.bz2 #还原 etc.dump.bz2 备份