一、哪些数据需要备份?
Linux系统需要备份的数据
/root/目录
/home/目录
/var/spool/mail/目录
/etc/目录
其他重要目录(如安装的服务)
安装的服务需要备份的数据
eg1:Apache需要备份的数据
配置文件
网页主目录
日志文件
eg2:MySQL需要备份的数据有
源码包安装的MySQL:/usr/local/mysql/data
RPM包安装的MySQL:/var/lib/mysql
二、备份策略
完全备份:指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录。
增量备份:每次备份都与上一次备份相比,备份的数据量小,占用的存储空间小,但是恢复麻烦
差异备份:每次备份跟第一次的完全备份相比
三、备份命令dump
dump【选项】备份之后的文件名 原文件或目录
-level //0-9,共10个备份级别
-f //指定备份之后的文件名
-u //备份成功之后,把备份时间记录在/etc/dumpdates文件
-v //显示备份过程中更多的输出信息
-j //调用bzlib库压缩备份文件,其实就是把备份文件压缩为.bz2格式
-w //显示允许被dump的分区的备份等级及备份时间
使用dump时显示找不到此命令,解决办法如下:
按照步骤安装好dump后执行备份操作
dump -0uj -f /root/boot.bak.bz2 /boot //完全备份/boot,并压缩和更新备份时间
cat /etc/dumpdates //查看备份时间
cp install.log /boot/ //将/boot文件进行修改
dump -1uj -f /root/boot.bak1.bz2 /boot //再进行增量备份
dump -W //查询分区的备份时间及备份级别
四、备份的恢复命令restore
restore 【模式选项】【选项】
模式选项:restore命令常用的模式有以下四种,这四个模式不能混用
-C:比较备份数据和实际数据的变化
-i:进入交互模式,手工选择需要恢复的文件
-t:查看模式,用于查看备份文件中拥有哪些数据
-r:还原模式,用于数据还原
选项:
-f:指定备份文件的文件名
前面我们将boot进行了备份,现在修改boot内的vm文件,将其改名,再比较boot的备份文件,发现内核镜像文件丢失。
现在恢复之前备份的boot目录。
mkdir boot.test //新建一个目录,用来存储恢复的文件,避免恢复的文件散乱
restore -r -f /root/boot.bak.bz2 //进入boot.test目录后,先恢复完全备份
restore -r -f /root/boot.bak1.bz2 //再恢复增量备份
可以看到所有的boot目录内容都存在boot.test下。
将/boot.test下的文件都拷贝至/boot下(提前清空/boot目录,这里注意是全部文件,略过的目录也要重新拷贝)
记得删除刚刚加入的install.log文件
特别注意:重启失败了==
因为刚刚没注意看,将/boot.test下的文件都拷贝至/boot下时略过了grub目录==
不慌,首先查一下/boot目录,好像这两项都没啥问题,如果报error15,说明/boot目录已丢失,进入光盘救援模式,查看一下/boot目录
对比之后发现缺少grub目录,所以将原备份文件的解压目录/root/boot.test里的grub目录拷贝至/disk1/下。重启成功。
ps:远程备份
一:通过shell脚本建立远程备份
lab:将服务器192.168.71.132上的配置文件远程备份到客户端kali-192.168.71.128上
1.在服务器端完成备份脚本文件
[root@yy public]# vim backup.sh
#!/bin/bash
find /etc -name "*.conf" > conf.txt
sleep 20
tar czf - -T conf.txt | ssh root@192.168.71.128 " dd of=/tmp/$(date +%F).conf.tar.gz"
[root@yy public]# chmod 777 backup.sh //添加执行权限
[root@yy public]# ./backup.sh //执行备份
2.在客户端查看备份内容是否生成:
二:通过scp进行远程备份
scp bigfile.tar root@192.168.71.128:/tmp
三:rsync远程数据同步
在服务器端同步
rsync backup.sh root@192.168.71.128:/tmp
在客户端查收