Linux-备份与恢复

目录

前言

1.备份概述

1.1linux系统需要备份的数据

1.2备份策略

2.dump和restore命令

2.1 dump命令

2.2 restore命令

总结


前言

      ?每篇一句话

            做自己生命中的主角,而不是别人生命中的看客。

 这里是小葵花的学习之路

 ?博客主页? 小葵花学堂

?文章为个人笔记,若其中如有内容不规范或讲解有误区的地方还请各位指正,谢谢大家!?

欢迎各位?点赞?评论 ?收藏⭐️,

 ?Linux学习之路
        本章主要讲解一方面就是备份这个概念及重要性;另一方面讲解linux在Centos7版中,哪些目录或文件需要备份,以及如何通过内置命令实现快速备份和恢复。
?冲冲冲?
⭐️上一篇内容
Linux-启动管理


1.备份概述

        备份是防止系统出现操作失误系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。恢复是自从备份了数据后,使用数据的过程中发现出现了点小问题,导致数据库有些信息丢失了,并且现在的数据库中找不到这些信息了,这个时候就可以用备份的数据库来恢复下这些丢失的信息了。


1.1linux系统需要备份的数据

/root/目录不仅是超级管理员家目录,还保存了很多的重要数据
/home/目录普通用户家目录
/var/spool/mail/目录

/etc/目录

系统配置文件存放的目录
其他目录

比如:/var/log日志目录

安装服务的数据

apache需要备份的数据配置文件
网页主目录
日志文件
mysql需要备份的数据源码包安装的mysql:/usr/local/mysql/data/
RPM包安装的mysql:/var/lib/mysql/

#在这里只是做了举例,具体的安装路径还需要根据实际去操作;以上是最基本的备份内容,实际中还需要根据个人需求对数据做相应备份。


1.2备份策略

?完全备份       

        完全备份就是指把所有需要备份的数据全部备份,当然完全备份可以备份整块硬盘,整个分区或某个具体的目录。

        这种备份方式最大的好处就是只要用一盘磁带,就可以恢复丢失的数据。因此大大加快了系统或数据的恢复时间。然而它的不足之处在于,各个全备份磁带中的备份数据存在大量的重复信息;另外,由于每次需要备份的数据量相当大,因此备份所需时间较长。

?增量备份

        增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件。这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件;第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推。

        这种备份方式最显著的优点就是:没有重复的备份数据,因此备份的数据量不大,备份所需的时间很短。缺点:必须具有上一次全备份和所有增量备份磁带(一旦丢失或损坏其中的一盘磁带,就会造成恢复的失败),并且它们必须沿着从全备份到依次增量备份的时间顺序逐个反推恢复,因此这就极大地延长了恢复时间。

?差异备份

        差异备份是指在一次全备份后到进行差异备份的这段时间内,对那些增加或者修改文件的备份。在进行恢复时,我们只需对第一次全备份和最后一次差异备份进行恢复。

        差异备份在避免了另外两种备份策略缺陷的同时,又具备了它们各自的优点。首先,它具有了增量备份需要时间短、节省磁盘空间的优势;其次,它又具有了全备份恢复所需磁带少、恢复时间短的特点。系统管理员只需要两盘磁带,即全备份磁带与灾难发生前一天的差异备份磁带,就可以将系统恢复。


2.dump和restore命令

2.1 dump命令

?格式

[root@localhost~]# dump [选项] 备份之后的文件名  源文件或目录
选项:
    -level:        就是我们说的0-9十个备份级别
    -f 文件名:      指定备份之后的文件名
    -u:            备份成功之后,把备份时间记录在/etc/dumpdates文件
    -v:            显示备份过程中更多的输出信息
    -j:            调用bzlib库压缩备份文件,其实就是把备份文件压缩为.bz2格式
    -W:            显示允许被dump的分区的备份等级及备份时间

# “-level”只需要写”0-9“备份级别即可;“0”代表完全备份,“1”代表第一次增量备份......以此类推

[root@localhost~]# dump -0 [备份之后的文件名] [原文件或目录]

?安装dump命令

 

# centos7最小化安装默认没有安装dump命令

[root@192 ~]# yum provides dump
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ustc.edu.cn
 * extras: mirrors.cn99.com
 * updates: mirrors.cn99.com
1:dump-0.4-0.23.b44.el7.i686 : Programs for backing up and restoring ext2/ext3 filesystems
源    :base

1:dump-0.4-0.23.b44.el7.x86_64 : Programs for backing up and restoring ext2/ext3 filesystems
源    :base

1:dump-0.4-0.23.b44.el7.x86_64 : Programs for backing up and restoring ext2/ext3 filesystems
源    :@base

#查看dump安装包

[root@192 ~]# yum -y install dump

#安装dump命令

?实例

  • 备份分区

执行一次完全备份,指定备份文件名为boot.bz2,并压缩和更新备份时间

[root@192 ~]# dump -0uj -f /root/boot.bz2 /boot/
  DUMP: Date of this level 0 dump: Sat Apr  9 16:09:55 2022
  DUMP: Dumping /dev/sda1 (/boot) to /root/boot.bz2
  DUMP: Label: none
  ......

  DUMP: Average transfer rate: 4634 kB/s
  DUMP: Wrote 111620kB uncompressed, 101955kB compressed, 1.095:1
  DUMP: DUMP IS DONE
[root@192 ~]# ll -h
总用量 100M
-rw-------. 1 root root 1.3K 11月 18 18:30 anaconda-ks.cfg
-rw-r--r--. 1 root root 100M 4月   9 16:10 boot.bz2

#查看/root/下已经有了boot.bz2的文件

#这里以/boot/目录为各位做演示,正常环境并不建议大家随意更改

查看备份时间文件

[root@192 ~]# cat /etc/dumpdates
/dev/sda1 0 Sat Apr  9 16:09:55 2022 +0800

#显示什么时间备份了什么分区

复制日志文件到/boot分区

[root@192 ~]# cp /var/log/boot.log /boot/

增量备份/boot分区,并压缩

[root@192 ~]# dump -1uj -f /root/boot1.bz2 /boot/
  DUMP: Date of this level 1 dump: Sat Apr  9 16:26:02 2022
  DUMP: Date of last level 0 dump: Sat Apr  9 16:09:55 2022
  DUMP: Dumping /dev/sda1 (/boot) to /root/boot1.bz2
  ......

  DUMP: Average transfer rate: 0 kB/s
  DUMP: Wrote 60kB uncompressed, 14kB compressed, 4.286:1
  DUMP: DUMP IS DONE

# "-1uj"中的“1”表示第一次增量备份

[root@192 ~]# cat /etc/dumpdates
/dev/sda1 0 Sat Apr  9 16:09:55 2022 +0800
/dev/sda1 1 Sat Apr  9 16:26:02 2022 +0800
[root@192 ~]# ll -h /root/
总用量 100M
-rw-------. 1 root root 1.3K 11月 18 18:30 anaconda-ks.cfg
-rw-r--r--. 1 root root  15K 4月   9 16:26 boot1.bz2
-rw-r--r--. 1 root root 100M 4月   9 16:10 boot.bz2

#再次查看备份时间文件,多出了一个boot1.bz2,这里可以看出第二次备份只备份了新加的文件

查询分区的备份时间及备份级别

[root@192 ~]# dump -W
Last dump(s) done (Dump '>' file systems):
> /dev/sda2     (     /) Last dump: never
  /dev/sda1     ( /boot) Last dump: Level 1, Date Sat Apr  9 16:26:02 2022

#看到sda2没有备份过,于2022年16点进行过sda1增量备份

  • 备份文件或目录

备份/etc/目录

[root@192 ~]# dump -0j -f /root/etc.dimp.bz2 /etc/
  DUMP: Date of this level 0 dump: Sat Apr  9 17:09:05 2022
  DUMP: Dumping /dev/sda2 (/ (dir etc)) to /root/etc.dimp.bz2
 
......
  
  DUMP: Wrote 39730kB uncompressed, 12576kB compressed, 3.160:1
  DUMP: DUMP IS DONE

#完全备份/etc/目录,只能使用0级别进行完全备份,而不再支持增量备份

使用1级别进行备份

[root@192 ~]# dump -1j -f /root/etc.dimp.bz2 /etc/
  DUMP: Only level 0 dumps are allowed on a subdirectory
  DUMP: The ENTIRE dump is aborted.

#此时就会报错


2.2 restore命令

⚽格式

[root@localhost~]# restore [模式选项] [选项]
模式选项:restore命令常用有以下四种,这四个模式不能混用
    -C:    比较备份数据和实际数据的变化
    -i:    进入交互模式,手工选择需要恢复的文件
    -t:    查看模式,用于查看备份文件中拥有哪些数据
    -r:    还原模式,用于数据还原

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

?比较模式

[root@192 boot]# mv grub grub.backup

#利用上面备份好的/boot文件做实验;把/boot目录中的grub文件改个名字

[root@192 boot]# restore -C -f  /root/boot.bz2
Dump tape is compressed.
Dump   date: Sat Apr  9 16:09:55 2022
Dumped from: the epoch
Level 0 dump of /boot on 192.168.48.148:/dev/sda1
Label: none
filesys = /boot
restore: unable to stat ./grub/splash.xpm.gz: No such file or directory
restore: unable to stat ./grub: No such file or directory
Some files were modified!  2 compare errors

#restore发现grub文件丢失

注:如果真的丢失可还原备份好的文件至/boot目录中

[root@192 boot]# mv grub.backup/ grub
[root@192 boot]# restore -C -f  /root/boot.bz2
Dump tape is compressed.
Dump   date: Sat Apr  9 16:09:55 2022
Dumped from: the epoch
Level 0 dump of /boot on 192.168.48.148:/dev/sda1
Label: none
filesys = /boot

#将文件名恢复之后,再次restore比较此时备份数据和实际数据完全相同

?查看模式

[root@192 boot]# restore -t -f /root/boot.bz2
Dump tape is compressed.
Dump   date: Sat Apr  9 16:09:55 2022
Dumped from: the epoch
Level 0 dump of /boot on 192.168.48.148:/dev/sda1
Label: none
         2      .
        11      ./lost+found
        12      ./efi
        13      ./efi/EFI
        14      ./efi/EFI/centos
      8193      ./grub2
        
        ......

#查看备份的压缩包中到底有哪些文件

?还原模式

  • 还原数据

还原上面备份的boot.bz2以及boot1.bz2数据

[root@192 ~]# mkdir boot.bak

#还原前需要提前创建一个目录用来存放恢复后的数据

[root@192 ~]# cd boot.bak/
#需要进入boot.bak目录中,不然就会直接解压到了root目录当中

[root@192 boot.bak]# restore -r -f /root/boot.bz2
Dump tape is compressed.
[root@192 boot.bak]# restore -r -f /root/boot1.bz2
Dump tape is compressed.
[root@192 boot.bak]# ls
boot.log                       grub2                                                    lost+found                         vmlinuz-0-rescue-42eca8fea9e249628f407fe3de70973c
config-3.10.0-1062.el7.x86_64  initramfs-0-rescue-42eca8fea9e249628f407fe3de70973c.img  restoresymtable                    vmlinuz-3.10.0-1062.el7.x86_64
efi                            initramfs-3.10.0-1062.el7.x86_64.img                     symvers-3.10.0-1062.el7.x86_64.gz
grub                           initramfs-3.10.0-1062.el7.x86_64kdump.img                System.map-3.10.0-1062.el7.x86_64

#解压缩,恢复备份及增量备份数据

  • 还原文件
[root@192 boot.bak]# restore -r -f etc.dump.bz2

#还原/etc/目录的备份etc.dump.bz2


总结

         在学习完本章之后,到此Linux基础内容就此完结;加上前面内容一共讲了五个章节在这里我们来做个总结。

?章节一:Linux-服务管理

        主要讲解了服务的分类,分为RPM包安装的服务及源码包安装的服务两大类;其次就是如何管理服务的启动与自启动。

?章节二:Linux-系统管理

       本章节讲解了系统中进程的管理(查看、终止进程);如何通过查看系统资源来判断系统的状态;最后就是通过定时任务来简化管理员的工作任务。

?章节三:Linux-日志管理

        讲解了日志服务简介、常见日志的作用;resyslog日志的格式;最后讲到怎么通过日志轮换操作避免因日志文件过大导致主机内存占满等问题。

?章节四:Linux-启动管理

        讲解了在Linux系统中的运行级别及其所代表的含义;其次就是相对比Centos7与之前的6版本修改运行级别的区别;最后介绍了Centos7中系统的启动过程。

?章节五:Linux-备份恢复

        本章节讲解了如何通过Linux内置的命令去管理数据、文件或目录的备份、恢复。

        我相信只要是一起跟学的小伙伴,在学习完之后都会或多或少的有所收获;小编后续还会不定期更Linux的进阶内容,请大家尽情期待。感谢大家的支持❗❗❗


版权声明:本文为weixin_62816032原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。