第31周-鸟哥的Linux私房菜基础篇第三版-第九章、档案与文件系统的压缩与打包

1、压缩资料:
      RFC 1952 文件:http://www.ietf.org/rfc/rfc1952.txt
      鸟哥的备份:http://linux.vbird.org/linux_basic/0240tarcompress/0240tarcompress_gzip.php
2、压缩文件案扩展名:
      *.Z          compress 程序压缩的档案; 已退出流行
      *.gz         gzip 程序压缩的档案; 
      *.bz2        bzip2 程序压缩的档案; 更强大
      *.tar        tar 程序打包的数据,并没有压缩过;
      *.tar.gz     tar 程序打包的档案,其中并且经过 gzip 的压缩; 
      *.tar.bz2    tar 程序打包的档案,其中并且经过 bzip2 的压缩。
3、gzip最广,zcat
    gzip [-cdtv#] 档名 数据流重导向/解压缩参数/检验有无错误/压缩比信息/压缩等级(-1快压缩比差,-9反之,预设-6)
    例:
        先建立档案,如何建立? 
        cd /tmp
        cp /etc/man.config .
        gzip -v man.config
        ll /etc/man.config /tmp/man*
     读取:
        zcat man.config.gz  需要man.config为文本文件,才可用zcat。
        cat 可以读取纯文本档,zcat 则可以读取纯文本档被压缩后的压缩文件!
     解压缩:
        gzip -d man.config.gz  将.gz删除,产生原本的man.config档案
     最佳压缩比压缩:
        gzip -9 -c man.config > man.config.gz  (不加9即为默认6)
4、bzip2 [-cdkzv#] 档名   输出数据到屏幕/解压缩参数/保留源文件/压缩参数/同上/同上
   bzcat 档名.bz2
     例:压缩
           bzip2 -z man.config
         读取:
           bzcat man.config.bz2
         解压缩:
           bzip2 -d man.config.bz2    
         最佳压缩比压缩:
           bzip2 -9 -c man.config > man.config.bz2
        另:bunzip2可取代了bzip -d 的功能。

5、打包指令:tar

tar [-j][-z][cv][-f 建立的档案]      打包与压缩
     tar [-j][-z][tv][-f 建立的档案]      查看档案
     tar [-j][-z][xv][-f 建立的档案][-C 目录]     解压缩
     (注意:-j 透过bzip2;-z透过gzip;-v显示;-p 备份保留权限属性;-P保留绝对路径;--exclude=FILE不将FILE打包)
     压缩:tar -jcv -f filename.tar.bz2 要被压缩的档案或目录名称
     查询:tar -jtv -f filename.tar.bz2
     解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压的目录
      例:tar -zpcv -f /root/etc.tar.gz /etc
          tar -jpcv -f /root/etc.atr.bz2 /etc
          ll /root/etc*
          du -sm /etc  可见用-j更好
      注意:一般不用-P,对备份的数据更安全。
          tar -jxv -f /root/etc.tar.bz2 -C /tmp  不对?
          ll /tmp
     删除两个目录:
          rm -rf /root/etc /tmp/etc 注意不是删除/etc/ 
     仅解开单一档案法:
          tar -jtv -f /root/etc.tar.bz2 | grep 'shadow' 管线配合grep可以攫取关键词
     解开档案:
          tar -jxv -f /root/etc.tar.bz2 /etc/shadow
          ll /etc
     打开某目录,不包含某些档案:
          tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc*\
          >--exclude=/root/system.tar.bz2 /etc /root
         注意:此处用man tar查得为【--exclude file】,用info为【--exclude=file】,须留意。
     仅备份比某时刻新的档案:
         find /etc -newer /etc/passwd 用find找出比/etc/passwd更新的档案
         ll /etc/passwd
         tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 > --newer-mtime="2016/10/16" /etc/*
     显示出档案即可:
         tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 |\
         > grep -v '/$'
     基本名称:tarfile(仅打包时的叫法),tarball(打包和压缩时的叫法)
     备份到磁带机:tar -cv -f /dev/st0 /home /root /etc 注意不能用cp哦!(将/home /root /etc进行备份)
     特殊应用:用管线与数据流:
         cd /tmp
         tar -cvf - /etc | tar -xvf -  
         上面类似 cp -r /etc /tmp (将/etc复制到/tmp)
         两个“-”可理解为装置的缓冲区,即标准输出与输入。
6、系统备份范例:
     不用备份文件:
          /home/loop*; 
           /root下的压缩文件;
     例:先处理放置备份数据的目录与权限:
            mkdir /backups
            chmod 700 /backups
            ll -d /backups
         建立备份:
            tar -jcv -f /backups/backup-system-20161027.tar.bz2 \
            > --exclude=/root/*.bz2 --exclude=/root/*.gz --exclude=/home/loop* \
            > /etc /home /var/spool/mail /var/spool/cron /root
            ll -h /backups/
7、完整备份工具:dump      
       dump [-Suvj][-level][-f 备份档] 待备份资料 
       dump -W 
         (列出需用的磁盘空间/将dump时间记录到/etc/dumpdates中/显示/加入bzip2/等级/接产生的档案/列出分隔槽是否备份)
   找出最小文件系统:
        df -h
   需多少容量:
        dump -S /dev/sda1  没有该指令哦
   完整备份:
        dump -0u -f /root/boot.dump /boot
        ll /root/boot.dump /etc/dumpdates
   系统主动建立的纪录文件:
        cat /etc/dumpdates

   用dump备份非文件系统,即单一目录方法:
      dump -0j -f /root/etc.dump.bz2 /etc
8、复原数据:restore
      restore -t [-f dumpfile][-h]          查看
      restore -C [-f dumpfile][-D 挂载点]   比较
      restore -i [-f dumpfile]              互动
      restore -r [-f dumpfile]              还原整个文件系统
        例:
            restore -t -f /root/boot.dump   
     建立文件系统再还原:
         fdisk /dev/sda
         n
         [Enter]
         2335
         +150M
         W
         partprobe
         mkfs -ext3 /dev/sda7
         mount /dev/sda7 /mnt
         cd /mnt
         restore -r -f /root/boot.dump
     仅还原部分档案的restore互动模式:
         cd /mnt
         restore -i -f /root/etc.bump
         restore > help
         三个重点指令:add file     将file加入要解压缩的档案列表中;
                       delete file  将file移出列表,非删除;
                       extract      将选择的档案列表解压缩。
     info restore 去了解功能
9、光盘写入工具:
      建立映像档:mkisofs
          mkisofs [-o 映像档][-rv][-m file]带备份文件..[-V vol] \
          > -graft-point isodir=systemdir...  (-m排除档案,-V建立Volume,-graft-point转嫁移植)
      例1:mkisofs -r -v -o /tmp/system.img /root /home /etc
          ll -h /tmp/system.img
          ls /mnt
          umount /mnt 
          结果是文件堆叠无法区分
      例2:mkisofs -r -V 'linux_file' -o /tmp/system.img \
           -m /home/lost+found -graft-point /root=/root /home=/home /etc /etc
           ll -h /tmp/system.img
           umount /mnt 
           在各个目录中分门别类,清晰。
10、光盘刻录工具:cdrecord
       cdrecord -scanbus dev=ATA        寻找刻录机位置
       cdrecord -v dev=ATA:x,y,z blank=[fast|all] 抹除
       cdrecord -v dev=ATA:x,y,z -format          仅针对DVD+RW格式的DVD
       cdrecord -v dev=ATA:x,y,z [可用选项功能] file.iso
     进行CD的刻录动作:
        cdrecord -v dev=ATA:1,1,0 blank=fast
        cdrecord -v dev=ATA:1,1,0 fs=8m -dummy -date \
        > /tmp/system.img
     刻录完毕检测:
        mount -t iso9660 /dev/cdrom /mnt
        df -h /mnt
        ll -/mnt
        umount /mnt
     注意:要加入-date,否则会以音轨格式写入光盘。
     进行DVD-RW的刻录动作:
         抹除内容:
               cdrecord -v dev=ATA:1,1,0 blank=fast
         写入DVD:
               cdrecord -v dev=ATA:1,1,0 fs=8m -date -sao \
               > driveropts=burnfree /tmp/system.img
         检测同上:
      总结区别:CD-RW会自动抹除,DVD-RW需手动抹除。
11、dd:几乎可以直接读取扇区sector,将装置备份成档案。
      dd if="input_file" of="output_file" bs="block_size" \ 
      > count="number"
    将前者备份到后者:  
       dd if=/etc/passwd of=/tmp/passwd.back
    备份磁盘的第一个扇区:
       dd if=/dev/sda of=/tmp/mbr.back bs=512 count=1    
    区别:tar备份关键数据,dd备份这个parition或整个disk。
    注意:复制boot sector,不能用cp或tar,只能用dd,且它不需格式化。
12、cpio,可备份任何东西,包括装置设备档案。
      cpio -ovcB  > [file|device]       备份
      cpio -ivcdu < [file|device]       还原
      cpio -ivct  < [file|device]       查看
    找出/boot底下所有档案:
      find /boot -print
      find /boot | cpio -ocvB > /tmp/boot.cpio
      ll -h /tmp/boot.cpio
    将档案解开:
      cpio -ivct < /tmp/boot.cpio
      ll -/root/boot 
    解压缩档案:
      看档案格式:
         file /boot/initrd-2.6.18.-128.el5.img   结果得出进行gzip压缩过
      增加扩展名:
         mkdir initrd
         cd initrd
         cp /boot/initrd-2.6.18.-128.el5.img initrd.img.gz
         gzip -d initrd.img.gz
         ll
         file initrd.img
      用cpio解档案:
          cpio -iduvc < initrd.img 

参考:

   台湾学术网络管理文件:
        Backup Tools in UNIX(Linux): http://nmc.nchu.edu.tw/tanet/backup_tools_in_unix.htm
  中文 How to 文件计划 (CLDP):
        http://www.linux.org.tw/CLDP/HOWTO/hardware/CD-Writing-HOWTO/CD-Writing-HOWTO-3.html
  熊宝贝工作记录: 
        Linux 刻录实作:http://csc.ocean-pioneer.com/docum/linux_burn.html
  PHP5 网管实验室:
        http://www.php5.idv.tw/html.php?mod=article&do=show&shid=26
   CentOS 5.x  man dump
   CentOS 5.x  man restore

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值