文章目录
- 文件与文件系统的压缩
- Linux系统常见的压缩命令
- gzip,zcat/zmore/zless/zgrep
- bzip2,bzcat/bzmore/bzless/bzgrep
- xz,xzcat/xzmore/xzless/xzgrep
- 打包命令tar
- XFS系统的备份和还原
- XFS文件备份之xfsdump
- xfsdump使用的限制
- xfsdump命令语法
- XFS文件系统还原之xfsrestore
- xfsrestore命令语法
- 光盘写入工具
- mkisofs:建立镜像文件
- cdrecord:光盘刻录工具
- 其他压缩和备份工具
- dd命令
- cpio命令
文件与文件系统的压缩
在磁盘中的文件总是存在着各种浪费空间的问题,为了节省磁盘空间,充分利用空间,于是出现了压缩技术,将大文件压缩一部分,使得更高效的利用磁盘空间,也更便于文件的传输。(如我们在网站上看到的数据,都是传输压缩过的数据,等压缩过的数据到达我们的计算机主机时,再解压缩,最终呈现在我们面前)
Linux系统常见的压缩命令
Linux系统支持的压缩命令非常多,各种压缩技术所使用的技术不同,不同通用,所有压缩文件通常都有扩展名,避免混淆。
压缩比概念:压缩比指的是压缩前的文件与压缩后的文件所占磁盘容量之比,比值越高,压缩程度越好。
gzip,zcat/zmore/zless/zgrep
- gzip命令使用zip程序来压缩文件,同样也可以解开compress、zip、gzip软件所压缩的程序
gzip命令语法:
gzip [-cdtv#] 文件名.gz
-d: 解压缩的参数
-#:#为数字,代表压缩等级,-1最快,压缩比最差,-9最慢,压缩比最好
-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-v:显示压缩比等信息
- zcat/zmore/zless/zgrep
cat/more/less/grep可以读取纯文本文件,而zcat/zmore/zless/zgrep可以直接读取纯文本文件压缩后的压缩文件 - 注意的是,使用gzip命令时,源文件会被压缩成.gz后缀的文件,源文件不再存在。
bzip2,bzcat/bzmore/bzless/bzgrep
- bzip2命令使用bzip2程序来压缩或解压文件
bzip2命令语法:
-d:解压缩的参数
-#:#为数字,代表压缩等级,-1最快,压缩比最差,-9最慢,压缩比最好
-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-v:显示压缩比等信息
-k:保留原始文件,不会删除原始文件
- bzcat等 的作用与zcat等 相同
xz,xzcat/xzmore/xzless/xzgrep
- xz命令使用xz程序来压缩或解压文件
xz命令语法:
-d:解压缩的参数
-#:#为数字,代表压缩等级,-1最快,压缩比最差,-9最慢,压缩比最好
-c:将压缩的数据输出到屏幕上,可通过数据流重定向来处理
-v:显示压缩比等信息
-k:保留原始文件,不会删除原始文件
- 同样,xzcat/xzmore/xzless/xzgrep作用同上
- 上述三个命令中,gzip、bzip2、xz压缩程度依次递增,但所耗时间也依次递增。
打包命令tar
前面提到的压缩命令都是只能对文件进行压缩(对目录压缩即是对目录内的所有文件分别进行压缩),而要形成类似于windows中的压缩包的大文件,就需要使用打包命令tar,将压缩过的文件打包成一个大文件。
常用的tar命令语法:
- 打包和压缩:
tar [-z|-j|-J] [cv] [-f 将建立的新文件名] [–exclude=目录中压缩时被排除在外的文件] 被打包压缩的文件/目录名- 查看文件名:
tar [-z|-j|-J] [tv] [-f tar文件名]- 解压缩:
tar [-z|-j|-J] [xv] [-f tar文件名] [-C 目录名] #-C指定解压文件至某一目录- 各参数意义:
-c:建立打包文件
-t:查看打包文件中含有哪些文件名
-x:解压缩
-z:通过gzip的支持进行压缩和解压缩
-j:通过bzip2的支持进行压缩或解压缩
-J:通过xz的支持进行压缩或解压缩
-f:-f后要跟被处理的文件名(最好将该参数独立出来,-jvfc 中c并不是文件名,会导致错误;最好写成-jvc -f)
-p:保留备份数据原本的权限和属性
注意:**打包压缩后的目录中的文件名,都不含根目录。**这样做的目的是为了安全,避免在解压缩后文件覆盖系统中原有的文件。
- tarfile与tarball之别
如果tar打包了文件,但没有进行压缩,那么这个文件我们就称为tarfile。
如果打包且进行了压缩,就称为tarball。
XFS系统的备份和还原
tar通常是针对目录树系统进行备份,而要对xfs文件系统进行备份与还原就需要使用xfsdump和xfsrestore命令。
XFS文件备份之xfsdump
xfsdump可以对xfs文件系统进行完整备份,此外还可以进行增量备份(增量备份即备份系统在第一次备份后新增的文件)
xfsdump使用的限制
- xfsdump只能备份已挂载的文件系统
- xfsdump必须使用root权限才能使用
- xfsdump只能备份文件系统
- xfsdump备份下来的数据只能由xfsrestore进行解析
- xfsdump是通过各文件系统的UUID来辨别各备份文件的
xfsdump命令语法
xfsdump [-L S_label] [-M M_label] [-l #] [-f 备份文件] 待备份的数据
参数意义:
-L:xfsdump会记录每次备份的session标头
-M:xfsdump会记录存储媒介的标头
-l:指定备份的等级,0-9(0即是完整备份)
-I:从/var/lib/xfsdump/inventory列出目前备份的信息状态
XFS文件系统还原之xfsrestore
xfsrestore命令语法
xfsrestore [-f 备份文件] [-L S_label] [-s] 待恢复目录 # 单一文件全恢复
xfsrestore [-f 备份文件] -r 待恢复目录 # 通过增量备份来恢复系统
xfsrestore [-f 备份文件] -i 待恢复目录 # 进入交互模式
参数:
-I:查询备份数据
-f:后接备份文件
-s:接指定目录,仅恢复某一个文件或目录
-i:进入交互模式
另:differ -r 目录1 目录2 # 比较量目录内的文件差异
光盘写入工具
mkisofs:建立镜像文件
《鸟哥私房菜》277
cdrecord:光盘刻录工具
阅读有些迷糊,等待遇到实际问题时,再来理解使用。
其他压缩和备份工具
dd命令
dd命令可以用来创建大文件,同样也可以用来备份。
但注意的是,默认dd命令在备份的时候是一个扇区一个扇区去读写的,甚至没有用到的扇区也会被写入备份文件中,此外,连通superblock、启动扇区、元数据等也会被复制过来,所以使用dd的命令得到的备份文件跟原来的磁盘是一模一样的。
cpio命令
cpio命令可以备份任何东西,包括设备文件。