美文网首页
Linux笔记-文件备份和还原

Linux笔记-文件备份和还原

作者: RaoZC | 来源:发表于2019-01-08 23:57 被阅读0次

我们可以使用tar命令对目录树进行备份,但如果需要对整个文件系统进行备份和还原,则需要用到其他命令,这里介绍XFS文件系统的备份和还原。

1. XFS文件系统的备份

对完整的文件系统进行备份,用xfsdump。他除了可以进行完整备份,还可以进行累积性备份。就是第一次使用xfsdump,是完整备份,定义为level 0,而第二次备份,则不会完整备份,而是和第一次的备份(level 0)进行比较,仅备份有差异的文件(level 1)。各个level的文件,一本存放在/var/lib/xfsdump/inventory中。
xfsdump有5个限制:

  • 必须用root权限
  • 只能备份已挂载的文件系统
  • 只能备份XFS文件系统
  • 只能用xfsrestore解释
  • 透过文件系统的UUID来分辨备份档,因此不能备份相同UUID的文件系统
xfsdump [-L S_lable] [-M M_lable] [-l #] [-f 备份档] 待备份资料
xfsdump -I

参数解释:
-L:每次备份的标头,可写简易说明
-M:储存媒体的标头,可写简易说明
-l:备份等级0~9,0是完整备份
-f:后接产生的文件
-I:列出备份信息状态
举例:

- 先确定/boot 是独立文件系统
df -h /boot

- 将完整备份文件名记录为 /srv/boot.dump
xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot
        -----  --------    --------   ---------------- ------
       备份等级 文件说明     媒体说明         备份名     来源路径

-  观察备份目录
ll /var/boot/xfsdump/inventory

2. 备份后还原

2.1 查看备份内容

要找出xfsdump备份的内容,只要使用xfsrestore -I即可。

xfsrestore -I
2.2 还原到level 0

其实这就是讲/boot整个复原到最原本的状态。
如果希望\color{red}{全部}还原,则
<font face="黑体">我是黑体字</font>
<font size=4 >

xfsrestore -f /srv/boot/boot.dump -L boot_all /boot
            ---------------------  ----------  ----
                   文件来源         备份文件名  还原到

如果仅希望复原部分文件,例如,复原grub2到/tmp/boot2,则

mkdir /tmp/boot2
xfsrestore -f /srv/boot.dump -L boot_all -s grub2 /tem/boot2
              ------------     -------   --------- ----------
                文件来源       备份文件名 需还原的文件   还原到

-s 目录:加上这个,就是复原某个目录或文件

2.3 还原积累性备份

复原要一步一步复原,即level 0 -> level 1 -> level 2...

xfsrestore -f /srv/boot.dump1 /tmp/boot
            ----------------  ----------
               备份文件名        还原到

3. 其他压缩备份工具

3.1 dd

dd不单只可以制作文件,同时最大的作用是备份。因为dd可以读取磁盘装置的内容,几乎是整个扇区,然后将整个装置备份成一个文件。

dd if="input_file" of="output_file" bs="block_size" cout="number"

注意这些option前面都没有“-”
if:需要输入的文件或装置
of:输出的文件或装置
bs:规划一个block的大小,未指定则预设512 bytes,即一个sector的大小
count:bs的数量
例子1:我要将/etc/passwd 备份到 /etc/passed.back,则:

dd if=/etc/passwd of=/etc/passed.back
ll /etc/passwd /etc/passed.back 

例子2:将刚刻录的光驱内容,再次的备份下来成为映象档

dd if=/dev/sr0 of=/tmp/system.iso

例子3:假设USB是/dev/sda,将例子2的映象刻录到USB

lsblk /dev/sda        #查看USB状况
dd if=/tmp/system.iso of=/dev/sda
mount /dev/sda /mnt
ll /mnt

用dd来备份,这个备份文件会和原本的磁盘一般大,不像xfsdump仅备份文件系统中使用了的部分。dd就是不理会文件系统,有什么就记录什么。

3.2 cpio

cpio可以备份任何内容,包括装置设备文件。不过cpio需要配合类似find这种查找命令,因为cpio不会主动找文件来备份

cpio -ovcB  > [file|device] <==备份
cpio -ivcdu  < [file|device] <==还原
cpio -ivct     < [file|device] <==察看

备份会使用到的选项与参数:
-o :将数据 copy 输出到文件或装置上
-B :让预设的 Blocks 可以增加至 5120 bytes,预设是 512 bytes

还原会使用到的选项与参数:
-i :将数据自文件或装置 copy 出来系统当中
-d :自动建立目录
-u :自动的将较新的文件覆盖较旧的文件!
-t :需配合 -i 选项,可用在察看以 cpio 建立的文件或装置的内容

一些可共享的选项与参数:
-v :让储存的过程中文件名可以在屏幕上显示
-c :一种较新的 portable format 方式储存


参考来源:《鸟哥的Linux私房菜》

相关文章

网友评论

      本文标题:Linux笔记-文件备份和还原

      本文链接:https://www.haomeiwen.com/subject/bjiirqtx.html