Linux- 打包压缩与备份——tar/cpio/dump/restore/dd/genisoimage

1 文件的打包与解包

    包文件:是许多文件放在一起打成一个包,放在一起前文件的大小总和与放一起后的大小总和是相同的。

1.1  tar命令

1)打包:  tar  cvf  包文件名 文件

//c打包,v显示打包时的详细动态,f表示使用归档文件,必须写

   例如:tar  cvf   f.tar   f1    f2   

2)查看包文件中的内容:  tar  tf   包文件名

   例如:tar  tf   f.tar    //t是显示tar打包文件里的内容

3)解包:tar  xvf   包文件名   //默认解包到当前目录,原来的包还在

   例如:tar  xvf   f.tar      //x解包参数

   如果是解包到指定目录:tar  xvf   包文件名  -C  目录

   例如:tar  xvf  f.tar  -C  test      //C 指定解包的目的目录

4)其他

tar  Af  b.tar  a.tar  //把a.tar中的文件追加到b.tar中去

tar  rf   a.tar  f1.txt  f2.txt  //把f1,f2追加到a.tar中去,文件后缀不一定是txt

tar  uf   a.tar  f1.txt  f2.txt  //判断f1,f2两个文件如果比a.tar中的新,则替换

tar  cf   a.tar   f1.txt  f2.txt  --remove-files //把f1,f2文件打入a.tar包中,完成打包后,将2个文件从本地删除

tar  f  a.tar  --delete  f1.txt           //删除a.tar包中的f1.txt文件

tar  f  a.tar  --get  f1.txt  f2.txt      //提取a.tar包中的f1,f2

注意:使用tar命令为文件打包,包文件后缀默认为.tar;对目录也可以打包

1.2  cpio命令

注意:该命令打包用的少,解包有时候会用cpio

1)打包,配合find使用:#find  ./  -type  f  | cpio   -ocvB > f.cpio

//o 将数据copy到文件或设备上;c是一种比较新的portable format方式存储;v在屏幕上显示备份过程中的文件名;

2)查看包内容:#cpio   -tv   <  f.cpio

3) 解包:     #cpio  -ivdm  < f.cpio

注意:使用cpio命令为文件打包,包文件后缀默认为.cpio

2 文件的压缩与解压

    压缩文件:把一堆文件压缩了,文件压缩后总体变小了

    压缩命令    gzip     bzip2      xz

    解压缩命令  gunzip   bunzip2   unxz

2.1 压缩包的创建与解压

1)创建压缩包

tar  cvfz   压缩包文件.tar.gz  文件    //tar.gz=tgz

tar  cvfj    压缩包文件.tar.bz2  文件   //tar.bz2=taz

tar  cvfJ   压缩包文件.tar.xz   文件   //tar.xz=txz

2)解压缩包

  tar   xvfz   压缩包文件.tar.gz

  tar   xvfj   压缩包文件.tar.bz2

  tar   xvfJ   压缩包文件.tar.xz          注意:解压至指定目录用 –C

3)查看压缩包内容

   tar  tf  压缩包文件    //无论后缀是哪种,都可以用这个查看

3 备份

    备份的目的:用来恢复数据

3.1 备份策略

完整备份:又叫完全备份,备份全部的数据。恢复便捷,只需要一份完整备份即可恢复全部数据;但是备份时间长,重复文件较多

增量备份:备份上一次备份以外的数据。备份时间快,重复文件少;恢复数据需要一份完整备份和一系列的增量备份,并且要按照先后顺序进行恢复,如果丢失任意一份增量备份,则无法完全恢复数据

差异备份:备份自上次完整备份以来以外的数据。备份时间比完整备份快,重复文件比完整备份少,恢复数据方便,只需要一份完整备份和最新的一份差异备份即可恢复所有数据。

数据量小每月做一次完整备份,每周做一次增量或差异备份;数据量大的就每个季度做一次完整备份,每月做一次增量或差异备份;安全性要求高的就要采取两地三中心的策略

3.2 备份命令dump

1)如果没有这个命令,安装即可:yum  install  dump –y 。

2)dump可以备份文件、目录与文件系统(分区挂载点里的文件)

3)如何用dump备份

    注意:

    a) 备份文件和目录时不能将备份信息写入至/etc/dumpdates,即不能使用-u参数,只允许0级(完整备份)备份;

    b) 对文件系统进行备份,默认的方式为增量备份,如果采用差异备份,每次都进行1级备份即可。

格式:dump   –备份级别-uf   备份到哪个目录上   要备份的文件/目录/文件系统

例如:

dump  -0f  f1.dump  f1  //对文件备份时不能加u这个参数,且备份级别只能是0

dump  -0f  test.dump  test          //test是个目录

dump  -1f  /dev/sdb  /dev/sda1     //将文件系统sda1备份到sdb中

dump  -W                         //查看最后一次备份的文件及详细信息

增量备份的实现:

如果是将备份文件存储到系统安装时的sda盘的分区中,那么不需要对sda分区进行挂载使用,因为在安装时已经弄好了。但是如果把备份文件存储到自己添加的硬盘中去,需要对自己添加的磁盘进行格式化、挂载使用。在挂载的LV上操作也可以。想存到哪个目录就进到哪个目录下。

例如如果想要把/dev/sdc中的内容存到/dev/sdb中去,首先要把两块磁盘格式化,挂载使用,/dev/sdb挂载点/mnt/sdb,/dev/sdc 挂载点/mnt/sdc。

cd /mnt/sdb

touch /mnt/sdc/f0        

dump -0uf  0.dump  /mnt/sdc      

ls

restore –tf  0.dump      

touch /mnt/sdc/f1

dump  -1uf  1.dump  /mnt/sdc     

ls      

restore  -tf  1.dump

touch  /mnt/sdc/f2                 

dump  -2uf  2.dump  /mnt/sdc

ls         

restore  -tf  2.dump             

touch /mnt/sdc/f3

dump  -3uf  3.dump  /mnt/sdc      

ls      

restore  -tf  3.dump

差异备份的实现:

cd /mnt/sdb

touch /mnt/sdc/f0         

dump -0uf  0.dump  /mnt/sdc        

ls

restore –tf  0.dump        

touch /mnt/sdc/f1           

dump  -1uf  1.dump  /mnt/sdc     

ls      

restore  -tf  1.dump

touch  /mnt/sdc/f2              

dump  -1uf  2.dump  /mnt/sdc

ls         

restore  -tf   2.dump

3.3 恢复命令

1)查看备份文件中的数据

    restore  -tf  备份文件   //t指定备份介质中的文件,f指定所需要还原的备份介质

2)恢复备份文件至当前目录

restore    -xf    备份文件 //x提取备份介质中的指定文件

restore    -rf    备份文件 //r指定还原操作

//有时候会让输入从哪一个卷开始恢复,输入1 即可

3.4  dd命令

指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换

两个特殊的设备文件:

1)/dev/null位桶,垃圾桶,一般将文件连接至位桶相当于删除该文件。常用于将文件软连接至此,相当于删除文件;还用于将系统不需要的日志文件或输出重定向至/dev/null相当于忽略系统日志的或输出。

例如: systemctl  mask  firewalld , systemctl  unmask  firewalld  查看输出结果

       或echo   hello word   > /dev/null

2)/dev/zero 提供无限个0字符,一个空白文件里面都是0字符,当写入内容后,有的字符就会变成1,从而常用于生成文件。删除文件就是把里面的内容都写成0字符。

    dd  if=源文件/设备名称  of=目标文件/设备名称  bs=每次转换的大小  count=转换的块的数量

例如:dd  if=/dev/cdrom  of=./centos.iso  

                                      //将光盘转换为iso,相当于光盘的刻录,备份

dd  if=/dev/sda1  of=./boot.bak       //将sda3转换成一个文件

dd  if=/dev/zero   of=./disk1.img   bs=1M  count=100  //创建一个100M的虚拟硬盘,每次读写缓存为2M,总计累计100次。即bs*count=100M

用dd生成一个swap文件并使用:

dd  if=/dev/zero   of=./1.swap   bs=100M   count=1  // 生成文件

格式化:mkswap  ./1.swap

chmod   权限值   文件名         //更改文件权限

swapon   ./1.swap                //启用      

swapon               //查看当前系统内所有swap空间

swapoff   ./1.swap    //关闭

3.5  genisoimage  

将某个目录打包成ISO映像文件

genisoimage  -J   -L   -r   -o   etc.iso  /etc   

//将/etc目录打包成etc.iso文件,J使用Joliet格式的目录与文件名称;L允许文件名的第一个字符为句号;r使用rock ridge extensions,并开放全部文件的读取权限;o 指定映像文件的名称

genisoimage  -J  -v  –o  backup.iso    /mnt/backup     

//将/mnt/backup目录做成一个backup.iso备份 ,v显示详细动作

3.6 其他命令 

wodim  刻录光盘

mt  控制磁带


转载请注明出处,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鬼刺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值