压缩工具
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