linux档案与文件的的压缩与打包
本文涉及的命令:gzip、zcat、bzip2、bzcat、tar、dump、restore、mkiosfs、cdrecord、dd、cpio。
概念:
- 几种基础压缩的概念:
- 计算机最小单位是字节,但数据存储过程中有些字节中有些位数据没有使用,但计算机会填0,有的压缩技术就是利用复杂的算法将本应该是空的位【丢】出来。
- 另一种压缩就是将重复出现的内容进行解释。从而降低文件容量。
- 几种常见的压缩扩展名
- *.Z compress 程序压缩的档案;(过时,不用了)
- *.gz gzip 程序压缩的档案;
- *.bz2 bzip2 程序压缩的档案;
- *.tar tar 程序打包的数据,并没有压缩过;
- *.tar.gz tar 程序打包的档案,其中并且经过 gzip 的压缩
- *.tar.bz2 tar 程序打包的档案,其中并且经过 bzip2 的压缩
- dump备份工具
- 分等级备份,完整备份、差异备份
- 当待备份的文件为单一文件系统时可使用完整的dump功能。
- 当备份的资料为目录,并非单一文件系统,则备份资料必须在同一目录下,且只能使用完整备份,不支持 -u 选顷,即无法建立 /etc/dumpdates 这个各别 level 备份的时间记录文件;(详细请见后面命令解释)
- dd备份工具
- 可备份分区或磁盘,可实现磁盘对拷,无需格式化。
命令:
- gzip [-cdtv#] 档名 【可接重定向符,保留原档】
- -c :将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
- -d :解压缩的参数;
- -t :可以用来检验一个压缩文件的一致性~看看档案有无错误;
- -v :可以显示出原档案/压缩文件案的压缩比等信息;
- -# :压缩等级,-1 最快,但是压缩比最差、-9 最慢,但是压缩比最好!预设是-6
- 查看:zcat 档名.gz
- bzip2 [-cdkzv#] 档名
- -c :将压缩的过程产生的数据输出到屏幕上!
- -d :解压缩的参数
- -k :保留源文件,而不会删除原始的档案喔!
- -z :压缩的参数
- -v :可以显示出原档案/压缩文件案的压缩比等信息;
- -# :与 gzip 同样的,都是在计算压缩比的参数, -9 最佳, -1 最快!
- 查看:bzcat 档名.bz2
- tar---------文件的打包
- tar [-j|-z] [cv] [-f 建立的档名] filename... <==打包与压缩
- tar [-j|-z] [tv] [-f 建立的档名] <==察看档名
- tar [-j|-z] [xv] [-f 建立的档名] (可接打包档案中的某个档案名)[-C 目录] <==解压缩
- -c :建立打包档案,可搭配 -v 来察看过程中被打包的档名(filename)
- -t :察看打包档案的内容含有哪些档名,重点在察看『档名』就是了;-x :解打包或解压缩的功能,可以搭配 -C (大写) 在特定目录解开,-c, -t, -x 不可同时使用
- -j :透过 bzip2 的支持进行压缩/解压缩:此时档名最好为 *.tar.bz2
- -z :透过 gzip 的支持进行压缩/解压缩:此时档名最好为 *.tar.gz
- -v :在压缩/解压缩的过程中,将正在处理的文件名显示出来!
- -f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选顷!
- -C 目录 :这个选顷用在解压缩,若要在特定目录解压缩,可以使用这个选顷。
- -p :保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
- -P :保留绝对路径,亦即允许备份数据中含有根目录存在之意;
- --exclude=FILE:在压缩的过程中,不要将 FILE 打包!
- 例:
- 先由 find 找出比 /etc/passwd 还要新的档案
- find /etc -newer /etc/passwd
- 使用 tar 来进行打包吧!日期为 2008/09/29
- tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2008/09/29" /etc/*(此处有点问题)
- 先由 find 找出比 /etc/passwd 还要新的档案
- dump [-Suvj] [-level] [-f 备份档] 待备份资料 -----------备份
- -S :仅列出后面的待备份数据需要多少磁盘空间才能够备份完毕;
- -u :将这次 dump 的时间记录到 /etc/dumpdates 档案中;
- -v :将 dump 的档案过程显示出来;
- -j :加入 bzip2 的支持!将数据进行压缩,默认 bzip2 压缩等级为 2
- -level:就是我们谈到的等级,从 -0 ~ -9 共十个等级;
- -f :类似 tar ,后面接产生的档案,亦可接例如 /dev/st0 装置文件名等
- -W :列出在 /etc/fstab 里面的具有 dump 设定的 partition 是否有备份过?
- restore----------dump的还原 还原时需要进入档需要还原的目录下!
- restore -t [-f dumpfile] [-h] <==用来察看 dump 档
- restore -C [-f dumpfile] [-D 挂载点] <==比较dump与实际档案
- restore -i [-f dumpfile] <==进入互动模式
- restore -r [-f dumpfile] <==还原整个文件系统
- -t :此模式用在察看 dump 起来的备份文件中都有什么重要数据!类似 tar -t功能
- -C :此模式可以将 dump 内的数据拿出来跟实际的文件系统做比较,最终会列出『在 dump 档案内有记录的,且目前文件系统不一样』的档案;
- -i :进入互动模式,可以仅还原部分档案,用在 dump 目录时的还原!
- -r :将整个 filesystem 还原的一种模式,用在还原针对文件系统的 dump 备份
- -h :察看完整备份数据中的 inode 与文件系统 label 等信息。
- -f :后面就接你要处理的那个 dump 档案。
- -D :与 -C 进行搭配,可以查出后面接的挂载点与 dump 内有不同的档案!
- mkiosfs---------建立映像档
- mkisofs [-o 映像档] [-rv] [-m file] 待备份文件.. [-V vol] -graft-point isodir=systemdir ...
- -o :后面接你想要产生的那个映像档档名。
- -r :透过 Rock Ridge 产生支持 Unix/Linux 的档案数据,可记录较多的信息;
- -v :显示建置 ISO 档案的过程
- -m file :-m 为排除档案 (exclude) 的意思,后面的档案不备份到映像档中
- -V vol :建立 Volume,有点像 Windows 在档案总管内看到的 CD title 的东西
- -graft-point:graft有转嫁或移植的意思,
- mkisofs [-o 映像档] [-rv] [-m file] 待备份文件.. [-V vol] -graft-point isodir=systemdir ...
- 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
- cdrecord -v dev=ATA:x,y,z [可用选顷功能] file.iso
- [可用选顷功能] 主要是写入 CD/DVD 时可使用的选顷,常见的选顷包括有:
- -data :指定后面的档案以数据格式写入,不是以 CD 音轨(-audio)方式写入!
- speed=X :指定刻录速度,例如CD可用 speed=40 为40倍数,DVD则可用 speed=4 之类
- -eject :指定刻录完毕后自动退出光盘
- fs=Ym :指定多少缓冲存储器,可用在将映像档先暂存至缓冲存储器。预设为 4m,一般建议可增加到 8m ,不过,还是得规你的刻录机而定。
- 针对 DVD 的选顷功能:
- driveropts=burnfree :打开 Buffer Underrun Free 模式的写入功能
- -sao :支持 DVD-RW 的格式
- 针对 DVD 的选顷功能:
- dd if="input_file" of="output_file" bs="block_size" count="number"------建立文档、备份 (可实现磁盘对拷,无需格式化)
- if :就是 input file,也可以是装置
- of :就是 output file,也可以是装置
- bs :规划的一个 block 的大小,若未指定则预设是 512 bytes(一个 sector 的大小)
- count:多少个 bs 的意思。
- cpio---------备份
- cpio -ovcB > [file|device] <==备份
- cpio -ivcdu < [file|device] <==还原
- cpio -ivct < [file|device] <==察看
- 备份会使用到的选顷与参数:
- -o :将数据 copy 输出到档案或装置上
- -B :让预设的 Blocks 可以增加至 5120 bytes ,预设是 512 bytes ! 这样的好处是可以让大档案的储存速度加快。
- 还原会使用到的选顷与参数:
- -i :将数据自档案或装置 copy 出来系统当中
- -d :自动建立目录!使用 cpio 所备份的数据内容不见得会在同一层目录中,因此我们必项要让cpio 在还原时可以建立新目录。
- -u :自动的将较新的档案覆盖较旧的档案!
- -t :需配合 -i 选顷,可用在"察看"以 cpio 建立的档案或装置的内容
- 一些可共享的选顷与参数:
- -v :让储存的过程中文件名可以在屏幕上显示
- -c :一种较新的 portable format 方式储存
提示:本文为《鸟哥linux私房菜基础篇》阅读笔记,不详细的地方请自行阅读该书。