我们可以使用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整个复原到最原本的状态。
如果希望还原,则
<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私房菜》
网友评论