您的位置:首页 > 其它

档案与文件系统的压缩打包

2015-05-29 09:59 375 查看
gzip [-cdtv#] 档名

-c:将压缩的数据输出到屏幕上,可以通过数据流重导向来处理

-d:解压缩

-t:检验压缩文件的一致性

-v:显示压缩比等信息

-#:压缩等级,-1最快但压缩比最差,-9最慢但压缩比最好,预设是6

压缩的结果是.gz档名,同时源文件会被替代,zcat可以读取gzip压缩的文件

bzip2 [-cdkzv#] 档名

-c:同gzip

-d:解压

-k:保留源文件,不会删除原始档案

-z:压缩

-v:同gzip

-#:同gzip

压缩效果比gzip好,产生的文件是.bz2,可用bzcat读取

tar:用来打包多个文件,仅打包不压缩,得到的档案称为tarfile,如果有压缩支持,则称为tarball。常用:

压缩:tar -jcv -f filename.tar.bz2 被压缩的文件

查看:tar -jtv -f filename.tar.bz2

解压:tar -jxv -f filename.tar.bz2 -C 解压的目录

其中-j是通过bzip2进行解压/压缩(-z:gzip),文件名的后缀需要自己添加。在解压过程中档名开头的根目录(/)会被拿掉,避免解压时覆盖根目录中的内容。如果需要保留根目录加上-P即可

查看压缩包中单一档案的方法:

先通过【tar -jtv -f filename | grep "关键字"】查找要打开的档案名,然后【tar -jxv -f filename 要打开的档案名】

打包某目录但不包括某些档案的方法:

tar -jcv -f filename.tar.bz2 --exclude=不包括的档案 要打包并压缩的目录

打包比某个档案新的档案:

1. 找出该档案的mtime(ls),例如2015/5/25

2. 打包:tar -jcv -f filename.tar.bz2 --newer-mtime="2015/05/25" 要打包压缩的目录

完整备份工具:dump

dump可以制定等级,第一次备份时等级为level 0,第二次备份时为level 1,level 1只备份从level 0后变化过的档案,level 2一次类推。如果备份的数据是单一文件系统,可以使用挂载点或者装置名进行备份;如果待备份的数据只是目录,并非单一文件系统,则此时有如下限制:

1. 所有的备份数据都必须在该目录下

2. 只能使用level 0

3. 不支持-u选项,无法在/var/lib/dumpdates下更新记录文件

dump [-Suv] [-level] [-f 备份档] 待备份资料

-S:列出待备份资料需要多少次盘空间进行备份

-u:将本次dump记录到/var/lib/dumpdates中

-v:显示dump过程

-j:加入bzip2支持,将数据进行压缩,默认压缩等级为2

-level:0~9个压缩等级

dump -W:列出/etc/fstab中具有dump设定的partition是否备份过

restore:恢复dump备份的数据

restore -t [-f dumpfile] [-h]:观察dump档

restore -C [-f dumpfile] [-D 挂载点]:比较dump与实际档案的差异

restore -i [-f dumpfile]:进入互动模式

互动模式中help可以查看指令,add file是将文件加入要解压的列表中,delete file是将文件从要解压的列表中移出,extract是解压。要被解压的档案前会出现*

restore -r [-f dumpfile]:还原文件系统(若有多个level的dump备份,要从level 0开始依次还原)

dd:读取磁盘装置的内容,备份成一个档案

dd if="input file" of="output file" bs="block size" count="block number"

block size预设是512B(一个sector的大小),结果中的3+1指三个完整的512B和一个不完整的512B

cpio:可以备份任何东西,包括装置、设备、档案,但需要结合find指令来寻找数据

cpio -ovcB > [file/device]:备份

-o:将数据copy输出到档案或装置上
-B:让预设的block大小可增加至5120B(预设是512B),好处是可以让大档案存储速度加快(inode数少)

cpio -ivcdu < [file/device]:还原

cpio -ivct < [file/device]:查看

-i:将数据从档案或装置copy出到系统中

-d:自动建立目录(cpio备份的数据不一定在同一层目录中,必须要然cpio在还原时建立新目录)

-u:用较新的档案覆盖较旧的档案

-t:需配合-i,可以查看以cpio建立的档案或装置的一些选项和参数

-v:显示存储过程

例:找出/boot下的所有档案并备份到tmp/boot.cpio
1. find /boot -print

2. find /boot | cpio -ocvB > /tmp/boot.cpio

dump,cpio,tar,dd比较

dump:

可将目录和文件系统备份至指定设备或备份成一个大文件,倾向于考虑文件系统而不是个别文件

cpio:

cpio可以备份从标准输入(stdin)来的档案。dump与cpio的功能比较:

1. cpio需要使用touch或find才可执行备份

2. dump备份完后不改变文件的atime和ctime

3. dump可以以互动的方式进行资料恢复,如retore的-i选项

如果需要定期备份整个作业系统,最好的选择是dump,其次是cpio

tar:

如果只是为了进行资料备份,不在乎atime,不需要定期做变动备份,tar是最好的选择

cpio有而大部分tar没有的功能:

1. 可以备份来自stdin的档案

2. 备份完成是重新设定档案的atime(这会改变其ctime)

dd:

一个很底层的指令,产生文件系统的二进制副本,不是基于文件的,不管也无需知道备份资料的结构,所以不能复制一群档案
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: