34.Linux系统备份与恢复

一、哪些数据需要备份?

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时显示找不到此命令,解决办法如下:

34.Linux系统备份与恢复_第1张图片
34.Linux系统备份与恢复_第2张图片

按照步骤安装好dump后执行备份操作

dump -0uj -f /root/boot.bak.bz2 /boot  //完全备份/boot,并压缩和更新备份时间

34.Linux系统备份与恢复_第3张图片

cat /etc/dumpdates  //查看备份时间

cp install.log /boot/  //将/boot文件进行修改

dump -1uj -f /root/boot.bak1.bz2 /boot  //再进行增量备份

34.Linux系统备份与恢复_第4张图片

dump -W  //查询分区的备份时间及备份级别

34.Linux系统备份与恢复_第5张图片

四、备份的恢复命令restore

restore 【模式选项】【选项】

模式选项:restore命令常用的模式有以下四种,这四个模式不能混用

-C:比较备份数据和实际数据的变化

-i:进入交互模式,手工选择需要恢复的文件

-t:查看模式,用于查看备份文件中拥有哪些数据

-r:还原模式,用于数据还原

选项:

-f:指定备份文件的文件名

前面我们将boot进行了备份,现在修改boot内的vm文件,将其改名,再比较boot的备份文件,发现内核镜像文件丢失。

34.Linux系统备份与恢复_第6张图片

现在恢复之前备份的boot目录。

mkdir boot.test  //新建一个目录,用来存储恢复的文件,避免恢复的文件散乱

restore -r -f /root/boot.bak.bz2  //进入boot.test目录后,先恢复完全备份

restore -r -f /root/boot.bak1.bz2  //再恢复增量备份 

34.Linux系统备份与恢复_第7张图片

可以看到所有的boot目录内容都存在boot.test下。

34.Linux系统备份与恢复_第8张图片

将/boot.test下的文件都拷贝至/boot下(提前清空/boot目录,这里注意是全部文件,略过的目录也要重新拷贝)

34.Linux系统备份与恢复_第9张图片

记得删除刚刚加入的install.log文件


特别注意:重启失败了==

因为刚刚没注意看,将/boot.test下的文件都拷贝至/boot下时略过了grub目录==

不慌,首先查一下/boot目录,好像这两项都没啥问题,如果报error15,说明/boot目录已丢失,进入光盘救援模式,查看一下/boot目录

34.Linux系统备份与恢复_第10张图片

对比之后发现缺少grub目录,所以将原备份文件的解压目录/root/boot.test里的grub目录拷贝至/disk1/下。重启成功。

34.Linux系统备份与恢复_第11张图片

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 [email protected] " dd of=/tmp/$(date +%F).conf.tar.gz"

[root@yy public]# chmod 777 backup.sh   //添加执行权限

[root@yy public]# ./backup.sh  //执行备份

34.Linux系统备份与恢复_第12张图片
34.Linux系统备份与恢复_第13张图片

2.在客户端查看备份内容是否生成:

34.Linux系统备份与恢复_第14张图片
已生成按日期命名的备份文件


二:通过scp进行远程备份

scp bigfile.tar [email protected]:/tmp

34.Linux系统备份与恢复_第15张图片
34.Linux系统备份与恢复_第16张图片

三:rsync远程数据同步

在服务器端同步

rsync backup.sh [email protected]:/tmp

同步

在客户端查收

已收到

你可能感兴趣的:(34.Linux系统备份与恢复)