linux压缩和备份工具


                                       压缩工具
1.压缩文件常见的几种扩展名
              *.Z   compress 程序压缩的文件
              *.gz  gzip 程序压缩的文件
              *.bz2 bzip2程序压缩的文件
              *.tar tar程序打包的数据,并没有压缩过
              *.tar.gz tar程序打包的数据,并经过gzip程序压缩
              *.tar.bz2 tar程序打包的数据,并经过bzip2程序压缩
2.compress 压缩格式现在gzip已经可以解压缩,所以可以不用学习这个命令
3.gizp  压缩:gzip man.config  此命令会将man.config文件压缩成.gz格式,但是源文件会不在存在
        解压缩 gzip -d man.config 此命令会将man.config.gz解压缩,但是.gz文件将不存在
        具体的命令参数可以使用man gzip
  zcat  不用解压缩就可打印出压缩文件的内容到屏幕。
4.bzip2  压缩:bzip2 man.config  此命令会将man.config文件压缩成.bz2的格式,加上-k参数后源文件不会消失
         解压缩 bzip2 man.config.bz2 此命令会将man.config.bz2解压缩
         具体的命令参数可以使用man bzip2
  bzcat  不用解压缩,就可打印出压缩文件的内容到屏幕。
  
  *zcat bzcat建议压缩文件本身是文本文件才使用,是文件夹就最好不使用
5.打包命令:tar
          压缩:tar -x/-j -cf filename.tar.gz/filename.tar.bz2 filename(要被压缩的文件或者目录名称)
          查询  tar -x/-j -tf filename.tar.gz/filename.tar.bz2
          解压缩 tar -x/-j -zf filename.tar.gz/filename.tar.bz2 —C 欲解压到的目录
 * -j 参数的后缀为tar.bz2  -x参数的后缀为tar.gz 使用时注意区分
   -c 压缩   -t 查询 -z解压缩 -f 后面紧跟要处理的文件 -v 在压缩、解压缩的过程中,显示正在处理的文件名
 
6.tar的几种特殊用法
a.仅解开单一文件的方法
       (1)找到我们所需要的文件名。假设我们需要解开shadow文件,假设在/root/etc.tar.bz2压缩包里 用-jtf参数(查询)
              tar -jtf /root/etc.tar.bz2 |grep 'shadow' 使用到grep选取关键字的功能
       (2)将该文件解开 格式:tar -jxf 打包文件.tar.bz2 待解开的文件名
              tar -jxf /root/etc.tar.bz2 etc/shadow
b.打包某目录但不包含该目录下某些文件的做法,假设我们打包/etc /root几个重要的目录,但是不要/root/etc*开头的文件
设文件打包后的名字为 /root/system.tar.bz2   --exclude 不包含的意思  /root/system.tar.bz2不要打包自己(他在/root里)
        tar -jcf /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.tar.bz2 /etc /root/etc
c.仅备份比某个时刻新的文件  -newer 表示后续的时间包含“mtime”和“ctime“ -newer-mtime 仅是mtime而已
        (1)通过find找到比/etc/passwd还要新的文件
            find /etc -newer /etc/passwd
            ll /etc/passwd  查看详细信息  包括时间
        (2)使用tar来打包  假设上面的时间为2009/09/29
            tar -jcf /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2009/09/29" /etc/*
d.备份使用
        方法:将/etc 整个目录一边打包 一边在tmp中解开
            cd  /tmp
            tar -cf - /etc |tar -xf -             此操作类似 cp -r /etc /tmp
        * - 输出文件为 - 而输入文件也为 -    
   
                                          备份工具
1.完整备份工具:dump 当需要对 文件系统 进行备份或者存储功能的时候,就要使用dump命令。
2.当备份的文件为单一文件系统
    当备份的文件为单一文件系统,就可以使用完备的dump功能,包括0-9的数个level来备份,同时还可以使用挂载点或者设备名来备份。
3.当备份的数据是目录,非单一的文件系统
    例如备份/home/someone/,但是该目录并非单一的文件系统,此时备份就受限制。
        a.所有的备份数据必须在该目录(本例为/home/someone/)下面
        b.仅支持level 0.即仅支持完整备份而已。
        c.不支持-u参数,即无法创建/etc/dumpdates这个level备份的时间记录文件。
4.dump的使用
        dump [-Suvj] [-level] -f 备份文件 待备份数据
            -S 测试待备份文件大概需要多少磁盘空间
            -u 将这次dump的时间记录到/etc/dumpdatas文件中
            -j 加入bizp压缩
            -level 等级
            -f 类似tar 后接产生文件
            
5.用dump备份完整的文件系统
    假设备份系统最小的文件系统:
        1)找出最小的那个文件系统  假设/etc/hdc1
                 df -h
        2)先测试和需要多大磁盘孔家
                dump -S /dev/hdc1
        3) 将完整备份的文件记录成/root/boot.dump,同时更新记录
                dump -0u -f /root/boot.dump /boot(待备份数据可以使用挂载点或者设备文件名,此处使用的设备文件名的挂载点)
        4)查看系统自己新建的记录文件
                cat /etc/dumpdatas
6. 用dump备份非文件系统,即单一目录文件的方法
        将/etc整个目录通过dump进行备份。仅含压缩功能(不能使用-u和level 1-9)
                dump -0j -f /root/etc.dump.bz2 /etc


7.restore  dump的恢复使用restore
        1)使用restore查看dump备份的数据内容
                restore -t -f /root/boot.dump  看boot.dump的内容
                restore -t -f /root/etc.dump   看etc.dump的内容
        2)使用restore还原文件系统,由于是整个文件系统,因此还原时需要新见一个全新的文件系统才行
            a.先新建一个分区来使用     fdisk /dev/hdc    n    p  w (分区的交互操作) 假如创建的是分区/dev/hdc8
            b.        partprobe   非常重要的操作 强制系统重新寻找一次分区
            c.        mkfs -t ext3 /dev/hdc8    磁盘分区格式化
            d.        mount /dev/hdc8   /mnt    挂载分区到/mnt
            f.        cd /mnt                   准备还原到挂载点下面
            g.        restore  -r -f /root/boot.dump       还原
            
                                         光盘写入工具
1.重要的信息,需要重复备份的数据,可以采用DVD之类的存储媒体来备份出来。命令行的刻录行为主要包括一下二个步骤:
    a.先将需要备份的数据构建出成一个镜像文件(iso),然后使用mkiosfs命令来出来。
    b.将镜像文件刻录至光盘或者DVD中,利用cdrecord命令来处理。
2.mkisofs:新建镜像文件
    mkisofs 命令的使用方式: mkisofs -r -v -o 镜像文件目录和名称 带备份文件目录
                具体参数参照  man mkisofs    
    注意:所有被备份的文件会被默认的放在镜像文件的根目录之下,如此以来可能会造成所有文件不易分类的情况,所以会引入-graft-point参数,可以用此方法定义位于镜像文件中的目录:
     镜像文件中的目录=实际linux文件系统的目录所在
     /movies/=/srv/movies/(讲Linux的/src/movies/内的文件,加至镜像文件中的/movies)     
     /linux/etc=/etc(将linux中的/etc中的所有数据备份到镜像文件的/linux/etc/目录中)
eg: mkisofs -r -v -o /tmp/system.img /root /home /etc    默认将 /root /home /etc 都加在镜像文件的根目录
    mkisofs -r -V 'linux_file' -o /tmp/system.img -graft-point /root=/root /home=/home /etc=/etc    
    
    注意:镜像文件可以直接挂载不用刻录载挂载  mnt -o loop/tmp/system.img /mnt
3.cdrecord:光盘刻录工具
    cdrecord -scanbus dev=ATA        查询刻录机位置
    cdrecord -v dev=ATA:x,y,z black=[fast|all]  抹除重复读写片
    cdrecord -v dev=ATA:x,y,z -format 格式化DVD+RW
    cdrecord -v dev=ATA:x,y,z [可用参数功能] file.iso 刻录

                                   其他常见的压缩和备份工具
1.dd:这个命令的作用不光是制作一个文件而已,他还有更大的功效在于还可以进行备份。dd可以读取磁盘的内容,然后将整个设备备份成一个文件。
      基本用法:dd if="inoutfile" of="output" bs="block size" count="number"
                参数:if  就是input file,也可是设备
                     of  就是output file,也可以是设备
                     block 规划一个block的大小,若为设置默认大小为512byte(一个扇区的大小)
                     count bs的个数

        tar可以备份关键数据,而dd可以用来备份整块分区或整块磁盘
2.复制启动扇区的分块(因为要复制扇区的区块,所以cp或者tar是无法完成磁盘区块的复制的),具体步骤如下:
        a.先进行分区操作 fdisk  /dev/hdc(进入交互界面,进行分区)
        b.partprobe
        c.不需要格式化,直接扇区复制  dd if=/dev/hdc1 of=/dev/hdc9 
        d.mount /dev/hdc9 /mnt    umount /mnt
3.cpio:cpio可以备份任何东西,包括设备和设备文件,但是他的缺陷是不会找文件来备份,需要配合find等可以找到文件名的命令来告知cpio应该备份的文件在哪里。会存在数据重定向的问题。具体的用法如此啊:
        备份:cpio -ovcB > file/device
        还原:cpio -ovccdu < file/decice
        查看:cpio -ivct < file/device


        

    
        
        
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值