Linux系列:数据恢复与备份常用的两个命令!

举报
数据分析与统计学之美 发表于 2021/09/27 20:56:51 2021/09/27
【摘要】 linux系列第九课

1、linux系统需要备份的数据

在这里插入图片描述

2、linux数据备份的几种方式

1)完全备份

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

2)增量备份

增量备份示意图如下:
在这里插入图片描述
增量备份的优势与劣势:

  • 1)优势:备份的数据最少,占用的存储空间最少;
  • 2)劣势:数据的恢复稍微麻烦一点,有几个增量备份,就要恢复几次;

3)差异备份(使用的少)

差异备份示意图如下:
在这里插入图片描述

3、备份与恢复

1)完全备份

可以写一个脚本,打包压缩,用cp命令进行复制,然后写个计划任务,定时执行这个脚本就行。

2)增量备份

增量备份就不适合写脚本,因为我们每一次要判断哪一个是新文件,这样会很麻烦。因此,对于增量备份,我们直接使用系统给我们提供的备份和恢复的命令。

Ⅰ 需要先学习一下的几个常用命令
// 1、查看系统中有哪些分区
// sda打头的的才是系统的分区,sda1/sda3/sda5
[root@image1 dev]# df -h      
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda5        34G  3.5G   29G  11% /
tmpfs           931M  224K  931M   1% /dev/shm
/dev/sda1       190M   40M  141M  23% /boot
/dev/sda3       2.0G  3.1M  1.9G   1% /home
/dev/sr0        3.7G  3.7G     0 100% /media/CentOS_6.9_Final

// 2、查看某个目录或者文件有多大
[root@image1 /]# du -sh 目录/文件名
[root@image1 /]# du -sh /etc/
41M /etc/

// 3、查询是否安装dump命令
[root@image1 ~]# rpm -qa | grep -i dump
// 4、安装dump命令
[root@image1 ~]# yum -y install dump

// 5、查询整个分区的备份情况
// never表示从来没有备份,假如有过备份,会显示最后一次备份的时间。
[root@image1 ~]# dump -W
Last dump(s) done (Dump '>' file systems):
> /dev/sda5 (     /) Last dump: never
> /dev/sda1 ( /boot) Last dump: never
> /dev/sda3 ( /home) Last dump: never
Ⅱ dump命令

在这里插入图片描述
① 备份分区:以备份boot分区为例。

// 下面我们以备份boot分区做实验,只是为了做演示。
// 备份/boot分区没啥特别意义。
// 先查看/boot分区有多大,原始目录有39M。
[root@image1 ~]# du -sh /boot/
39M /boot/

// 第一此备份,使用0级别下的完全备份。
[root@image1 ~]# dump -0uj -f /root/boot.bak.bz2 /boot/
// 执行最后,当出现DUMP: DUMP IS DONE,证明备份完成。

// 查看我们备份的时间,会显示你每次备份的时间。
[root@image1 dev]# cat /etc/dumpdates 
/dev/sda1 0 Sun Nov  3 08:43:12 2019 +0800

// 查看完全备份后的这个文件boot.bak.bz2,一共有36M(原始文件39M)。
[root@image1 ~]# ll -h | grep boot.bak.bz2
-rw-r--r--. 1 root root  36M Nov  3 08:43 boot.bak.bz2

// 这里为了演示增量备份,我们将/root目录下的install.log文件拷贝到/boot
// 下(这里只为了做一个演示,/boot分区下不要做其他的操作,只存储系统启动
// 时的一些数据,即可)。
// 这里我们第二次备份,使用1级别下的增量备份。
// 先拷贝一个新的文件到/boot分区目录下。
[root@image1 ~]# cp install.log /boot/
// 进行1级别下的增量备份。
[root@image1 ~]# dump -1uj -f /root/boot.bak1.bz2 /boot/

// 查看1级别下增量备份后的,这个文件,一共有23K。证明确实是增量备份。
[root@image1 ~]# ll -h | grep boot.bak1.bz2
-rw-r--r--. 1 root root  23K Nov  3 08:53 boot.bak1.bz2

// 再次查看我们备份的时间,这里也显示了第二次增量备份的时间。
[root@image1 ~]# cat /etc/dumpdates 
/dev/sda1 0 Sun Nov  3 08:43:12 2019 +0800
/dev/sda1 1 Sun Nov  3 08:53:00 2019 +0800

// 做完实验后,记得把/boot分区下的install.log这个文件删除。
[root@image1 ~]# rm -rf /boot/install.log 

② 备份文件或者目录:以备份/etc目录为例。

// 注:备份文件/目录,只能使用0级别,进行完全备份,而不再支持增量备份。
// 先查看一下/etc目录有多大
[root@image1 /]# du -sh /etc/
41M /etc/

// 备份文件或者目录,只能使用0级别下的完全备份。
[root@image1 ~]# dump -0j -f /root/etc.bak.bz2 /etc/

// 查看备份后的备份文件
[root@image1 ~]# ll -h | grep etc.bak.bz2
-rw-r--r--. 1 root root  13M Nov  3 09:09 etc.bak.bz2
Ⅲ restore命令

在这里插入图片描述
① -C:比较备份数据和实际数据的变化。

// 这个命令你只要使用了-C,它就会自动去和备份之前的分区、目录、文件
// 进行比较。
// 假如完全一样,日志到filesys = /boot这一行就结束了。
// 假如不一样,在filesys = /boot这一行下,会有一些其他的日志信息出现。
[root@image1 ~]# restore -C -f /root/boot.bak.bz2 
Dump tape is compressed.
Dump   date: Sun Nov  3 08:43:12 2019
Dumped from: the epoch
Level 0 dump of /boot on image1:/dev/sda1
Label: none
filesys = /boot
// 这里结果显示备份数据和实际数据之间没有任何差别;假如有差别,
// filesys = /boot这一行的下面还会有很多其它的日志信息。
// 会有类似No such file or directory这样子的提示信息。

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

[root@image1 ~]# restore -t -f /root/boot.bak.bz2 
Dump tape is compressed.
Dump   date: Sun Nov  3 08:43:12 2019
Dumped from: the epoch
Level 0 dump of /boot on image1:/dev/sda1
Label: none
          2 .
         11 ./lost+found
         12 ./grub
        24 ./grub/grub.conf
        13 ./grub/splash.xpm.gz
        25 ./grub/menu.lst
        26 ./grub/device.map
        .......

③ -r:还原模式,用于数据还原。
还原分区如下:

// 这里有一个问题:恢复数据的时候,不仅要恢复第一次完全备份的数据,还要
// 恢复第二次、第三次...所有的增量备份的数据。
// 我们创建一个目录restore,把前面备份的数据恢复到这里面去
// 创建一个restore目录
[root@image1 ~]# mkdir restore
// 进入到该目录下
[root@image1 ~]# cd restore/
// 先恢复第一次完全备份的数据
[root@image1 restore]# restore -r -f /root/boot.bak.bz2 
Dump tape is compressed.
// 再恢复第二次完全备份的数据
[root@image1 restore]# restore -r -f /root/boot.bak1.bz2 
Dump tape is compressed.

还原文件如下:

// 创建一个restore目录
[root@image1 ~]# mkdir bb
// 进入到该目录下
[root@image1 ~]# cd bb/
// 恢复/etc目录的命令如下
[root@image1 bb]# restore -r -f /root/etc.bak.bz2 
Dump tape is compressed.
./lost+found: (inode 11) not found on tape
./boot: (inode 784897) not found on tape
./dev: (inode 1569793) not found on tape
./home: (inode 915713) not found on tape
./proc: (inode 654081) not found on tape
./sys: (inode 1177345) not found on tape
./var: (inode 130817) not found on tape
./tmp: (inode 1308161) not found on tape
./root: (inode 392449) not found on tape
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。