linux备份命令-cpio

2018-05-30 09:07:23

cpio可以备份任何东西,包括设备设备文件。不过cpio 不会主动的去找文件来备份!一般来说, cpio 得要 配合类似 find 等可以找到文件名的指令来告知 cpio 该被备份的数据在哪里。

[root@study ~]# cpio -ovcB > [file|device] <==备份
[root@study ~]# cpio -ivcdu < [file|device] <==还原
[root@study ~]# cpio -ivct < [file|device] <==察看
备份会使用到的选项与参数:
-o :将数据 copy 输出到文件或设备上
-B :让默认的 Blocks 可以增加至 5120 Bytes ,默认是 512 Bytes !
这样的好处是可以让大文件的储存速度加快(请参考 i-nodes 的观念)

还原会使用到的选项与参数:
-i :将数据自文件或设备 copy 出来系统当中
-d :自动创建目录!使用 cpio 所备份的数据内容不见得会在同一层目录中,因此我们
必须要让 cpio 在还原时可以创建新目录,此时就得要 -d 选项的帮助!
-u :自动的将较新的文件覆盖较旧的文件!
-t :需配合 -i 选项,可用在"察看"以 cpio 创建的文件或设备的内容
一些可共享的选项与参数:
-v :让储存的过程中文件名称可以在屏幕上显示
-c :一种较新的 portable format 方式储存

cpio 会将数据整个显示到屏幕上,因此我们可以通过将这些屏幕的数据重新导向 (>) 一个新的文件! 至于还原呢?就是将备份 文件读进来 cpio (<) 进行处理之意。

[root@192 ~]# cd /
[root@192 ~]# find boot | cpio -ocvB > /tmp/boot.cpio
[root@192 ~]# ll -h /tmp/boot.cpio 
-rw-r--r--. 1 root root 99M May 29 20:43 /tmp/boot.cpio
[root@192 ~]# file /tmp/boot.cpio 
/tmp/boot.cpio: ASCII cpio archive (SVR4 with no CRC)

这里需要注意的是,如果我们用绝对路径如

[root@192 /]# find /boot
/boot
/boot/grub
/boot/grub/splash.xpm.gz
/boot/grub2
/boot/grub2/theme
...

那么未来解开的时候,它就一定会覆盖掉原本的 /boot,所以得用相对路径,那么当复原的时候,它就会在当前路径里操作。

[root@192 /]# cd ~
[root@192 ~]# cpio -idvc < /tmp/boot.cpio
boot
boot/grub
boot/grub/splash.xpm.gz
boot/grub2
boot/grub2/themes
...

[root@192 ~]# ll /root/boot
total 92756
config-3.10.0-514.el7.x86_64
grub
grub2
initramfs-0-rescue-025e785e72cb478bb42918d5b8ecdd9d.img
initramfs-3.10.0-514.el7.x86_64.img
initramfs-3.10.0-514.el7.x86_64kdump.img
...

系统数据完整备份于还原到磁带机上。

find / | cpio -ocvB > /dev/st0
cpio -idvc < /dev/st0

其实我们/boot里面有用cpio打包的文件,我们解开来看看。

[root@192 ~]# mkdir /tmp/initramfs
[root@192 ~]# cd /tmp/initramfs/
[root@192 initramfs]# cpio -idvc < /boot/initramfs-3.10.0-514.el7.x86_64.img
.
kernel
kernel/x86
kernel/x86/microcode
kernel/x86/microcode/GenuineIntel.bin
early_cpio
192 blocks


备注:
1.本系列命令都在centos7里测试,其他发行版如ubuntu、debian、fedora、opensuse等可能略微不同
2.觉得本文有帮助的小伙伴可以关注笔者
3.原文地址http://www.freecls.com/a/2712/41      

©著作权归作者所有
收藏
推荐阅读
简介
天降大任于斯人也,必先苦其心志。