第八章 文件与文件系统的压缩、打包与备份

1.常见的压缩指令

1.1 gzip,zcat/zmore/zless/zgrep

语法:

[root@root ~]#  gzip [-cdtv#] 档名
[root@root ~]#  zcat 档名.gz
[root@root ~]#  zgrep -n 'xxx' 档名.gz

选项与参数:
-c  :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
-d  :解压缩的参数;
-t  :可以用来检验一个压缩文件的一致性,看看文件是否有错误;
-v  :可以显示初原文件/压缩文件的压缩比信息等等;
-#  :#为数字,代表压缩的等级。-1 速度最快,压缩比最差,-9 速度最慢,压缩比最好,预设是-6。

注意:当使用gzip时,在默认情况下原本的文件被压缩成.gz格式,源文件就不再存在了。

1.2 bzip2,bzcat/bzmore/bzless/bzgrep

bzip2时为了取代gzip并提供更佳的压缩比而来的。用法与gzip基本相同。

语法:

[root@root ~]# bzip2 [-cdkzv#] 档名
[root@root ~]# bzcat 档名.bz2

选项与参数:
-c  :将压缩的过程产生的数据输出到屏幕上;
-d  :解压缩的参数;
-k  :保留源文件,而不会删除原始的文件;
-z  :压缩的参数;
-v  :可以显示原文件/压缩文件的压缩比;
-#  :#为数字,代表压缩的等级。-1 速度最快,压缩比最差,-9 速度最慢,压缩比最佳;

1.3 xz,xzcat/xzmore/xzless/xzgrep

xz是比bzip2压缩比更高的软件。用法也上面几本也一样。

语法:

[root@root ~]# xz [-dtlkc#] 档名
[root@root ~]# xcat 档名.xz

选项与参数:
-d  :解压缩;
-t  :测试压缩文件的完整性,是否有误;
-l  :列出压缩文件的相关信息;
-k  :保留原本的文件不删除;
-c  :将压缩的过程产生的数据输出到屏幕上;
-#  :#为数字,代表压缩的等级。-1 速度最快,压缩比最差,-9 速度最慢,压缩比最佳;

2.打包指令: tar

前面的指令大多只能对单一文件来进行压缩,虽然gzip、bzip2、xz也能对目录进行打包,但是它们对目录的压缩是"将目录的所有文件分别进行压缩"。

2.1 tar

语法:

[root@root ~]# tar [-z|-j|-J] [cv] [-f 待建立的新档名] 文件名称/目录(打包与压缩)
[root@root ~]# tar [-z|-j|-J] [tv] [-f 已有的tar档名](查看档名)       
[root@root ~]# tar [-z|-j|-J] [xv][-f 已有的tar档名][-C 目录](解压缩)

常见的选项与参数:
-c  :建立打包文件,可搭配-v来查看过程中被打包的档名;
-t  :查看打包文件的内容含有哪些档名,重点是"查看档名";
-x  :解打包或解压缩,可搭配-C在特定目录解开;

-z  :通过gzip支持压缩/解压缩;
-j  :通过bzip2支持压缩/解压缩;
-J  :通过xz支持压缩/解压缩;

-v  :在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f  :设置要被处理的档名;
-C  :选项用在解压缩,指定解压缩到某个目录;

-p  :保留备份数据的原本权限与属性,常用于备份重要的配置文件;
-P  :保留绝对路径,也就是允许备份数据中含有跟目录存在;
--exclude=file :在压缩的过程中,不要将file压缩/打包;

3.XFS文件系统的备份与还原

3.1 XFS文件系统备份:xfsdump

xfsdump是累计备份的:第一次备份的时候一定是完整备份,完整备份在xfsdump中被定义为level0;第二次备份时,只会记录与第一次完整备份有差异的文件。

xfsdump的完整备份和累计备份示意图

不过,xfsdump有以下几个限制:

  • xfsdump不支持没有挂载的文件系统备份。所以只能备份已挂载的

  • xfsdump必须使用root权限才能操作

  • xfsdump只能备份XFS文件系统

  • xfsdump备份下来的数据(文件或储存媒媒体)只能让xfsrestore解析

  • xfsdump是通过文件系统的UUID来分辨备份档的,因此不能备份两个具有相同UUID的文件系统

[~]#  xmfdump [-L S_label] [-M M_label] [-l #][-f 备份档] 待备份资料
[~]#  xfsdump -I  

选项与参数:
-L  :xfsdump记录每次备份的session标头,这里可以填写针对此文件的说明
-M  :xfsdump可以记录储存媒体的标头,这里可以填写此媒体的说明
-l  :指定等级0~9,预设为0,即完整备份
-f  :有点类似tar,后面加产生的文件
-I  :从/var/lib/xfsdump/inventory 列出目前备份的信息状态

用xfsdump备份完整的文件系统##

[~]#  xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot
也可以不加-L或-M的,那样会进入互动模式
[~]#  ll /srv/boot.dump
[~]#  ll /var/lib/xfsdump/inventory

用xfsdump进行累积备份##

# 看一下有没有任何文件系统被xfsdump备份过?
[~]#  xfmdump -I

# 建立一个大约10MB的文件在/boot内
[~]#  dd if=/dev/zero of=/boot/testing.img bs=1M count=10

# 开始建立累积备份档
[~]#  xfsdump -l 1 -L boot_2 -M boot_2 -f /srv/boot.dump1 /boot
[~]#  ll /srv/boot*

# 最后看一下是否有记录
[~]#  xfsdump -I

3.2 XFS文件系统还原xfsrestore

复原完整备份资料##

[~]#  xfsrestore -I  ##用来查看备份文件资料
[~]#  xfsrestore [-f 备份档] [-L S_label] [-s] 待复原目录  ##单一文件全系统复原
[~]#  xfsrestore [-f 备份档] -r 待复原目录  ##通过累积备份文件复原
[~]#  xfsresotre [-f 备份档] -i 待复原目录  ##进入互动模式
选项与参数:
-I  :可查询备份数据
-f  :后面加档名
-L  :就是session的label name
-s  :后面加特定目录,即仅回复一个文件或目录
-r  :如果用文件来存储备份数据,这个不需要使用。如果一个磁盘内有多个文件,需要用它累积复原
-i  :进入互动模式

简单复原level 0的文件系统##

怎么将/boot整个系统复原到最原本到状态?

# 示例1.直接将数据给它覆盖即可
[~]#  xfsrestore -f /srv/boot.dump -L boot_all /boot

# 示例2.将备份资料在/tmp/boot底下解开
[~]#  mkdir /tmp/boot
[~]#  xfsrestore -f /srv/boot.dump -L boot_all /tmp/boot
[~]#  du -sm /boot /tmp/boot
109    /boot
99      /tmp/boot

# 问题:为什么大小不一样?使用命令比较一下
[~]#  diff -r /boot /tmp/boot
Only in /boot:testing.img
# 可以看到/boot增加过一个文件

# 示例3.仅复原备份档内档grub到/tmp/boot2/里面
[~]#  mkdir /tmp/boo2
[~]#  xfsrestore -f /srv/boot.dump -L boot_all -s grub /tmp/boot2

复原累积备份资料##

如果备份数据是由level 0 -> level 1 -> ... 上面我们复原了level 0之后。接下来当然要复原level 1了。

# 继续复原level 1 到/tmp/boot中
[~]#  xfsrestore -f /srv/boot,dump1 /tmp/boot

如果我们不知道备份档里有什么文件怎么办?就通过"- i"来执行吧。如果我们想指定level 0 的备份数据里面有哪些东西,然后再少量的还原回来。

# 1.先进入备份文件,准备找出需要备份的文件名,同时还原到/tmp/boot3中
[~]#  mkdir /tmp/boot3
[~]#  xfsrestore -f /srv/boot.dump -i /tmp/boo3
命令执行后,可以查看到交互界面中能使用到的命令 -> 在交互界面使用ls查看所有文件 -> 使用"add [path]"命令添加要执行的备份的文件名 -> 使用"extract"跳出 

# 2.使用ls -l 查看/tmp/boot3是否有备份
[~]#  ls -l /tmp/boot3

3.3 备份文本文档

如果需要备份文本,怎么做呢?

  • 先将所需备份的数据建置成为一个映像档(iso),利用mkisofs指令处理;

  • 将该映像文件刻录至光盘或DVD中,利用cdrecord指令来处理。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容