1.1 Linux 系统常见的压缩指令
常见压缩文件案扩展名对应压缩指令:
*.Z compress 程序压缩的文件;
*.zip zip 程序压缩的文件;
*.gz gzip 程序压缩的文件;
*.bz2 bzip2 程序压缩的文件;
*.xz xz 程序打包的文件;
*.tar tar 程序打包的数据,并没有压缩过;
*.tar.gz tar 程序打包的文件,其中并且经过 gzip 的压缩;
*.tar.bz2 tar 程序打包的文件,其中并且经过 bzip2 的压缩;
*.tar.xz tar 程序打包的文件,其中并且经过 xz 的压缩;
1.1.1 gzip,zcat/zmore/zless/zgrep
gzip [-cdtv#] 档名
zcat 档名.gz
选项与参数:
-c:将压缩的数据输出到屏幕上,可透过数据流重导向来处理;
-d:解压缩的参数;
-t :可以用来检验一个压缩文件的一致性
-v:可以显示出原文件/压缩文件案的压缩比等信息;
-#:# 为数字的意思,代表压缩等级,-1 最快,但是压缩比最差,-9 最慢,但是压缩比最好!预设是 -6
1.1.2 bzip2,bzcat/bzmore/bzless/bzgrep
bzip2 [-cdkzv#] 档名
bzcat 档名.bz2
选项与参数:
-c:将压缩的过程产生的数据输出到屏幕上!
-d:解压缩的参数;
-k:保留源文件,而不会删除原始的文件;
-z:压缩的参数(默认值,可不加);
-v:可以显示出原文件/压缩文件案的压缩比等信息;
-#:与 gzip 同样的,都是在计算压缩比的参数,-9 最佳,-1 最快!
1.1.3 xz,xzcat/xzmore/xzless/xzgrep
xz [-dtlkc#] 档名
xcat 档名.xz
选项与参数:
-d:解压缩参数
-t :测试压缩文件的完整性,看有没有错误
-l :列出压缩文件的相关信息
-k:保留原来的文件不删除
-c:将压缩数据由屏幕上输出
-#:压缩比参数
1.1.4 打包指令:tar 常用于磁带机的备份
tar [-z|-j|-J] [cv] [-f 待建立的新档名] filename 打包与压缩
tar [-z|-j|-J] [tv] [-f 既有的 tar档名] 观察档名
tar [-z|-j|-J] [xv] [-f 既有的 tar档名] [-C 目录] 解压缩
选项与参数:
-c:建立打包文件,可搭配 -v 来查看过程中被打包的档名(filename)
-t :查看打包文件的内容含有哪些档名,重点在查看【档名】
-x :解打包或解压缩的功能,可以搭配 -C 在特定目录解开
-z:透过 gzip 的支持进行压缩/解压缩,此时档名最好为 *.tar.gz
-j :透过 bzip2 的支持进行压缩/解压缩,此时档名最好为 *.tar.bz2
-J:透过 xz 的支持进行压缩/解压缩,此时档名最好为 *.tar.xz
-v:在压缩/解压缩的过程中,将正在处理的文件名显示出来
-f filename:-f 后面要立刻接要被处理的档名!建议 -f 单独写一个选项!
-C 目录:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项
-p:保留备份数据的原本权限与属性,常用于备份(-c)重要的配置文件
-P:保留绝对路径,亦即允许备份数据中含有根目录存在之意
--exclude=FILE:在压缩过程中,不要将 FILE 打包
tar -[-z|-j|-J] xv -f 打包档.tar.bz2 待解开档名
范例一:解开打包文件内的其中一个文件。
1、先找到我们要的档名,假设解开 shadow 文件
tar -jtv -f /root/etc.tar.bz2 | grep 'shadow'
2、将该文件解开
tar -jxv -f /root/etc.tar.bz2 etc/shadow
范例二:打包某目录,但不含该目录下的某些文件,打包 /etc/ /root 这几个重要目录,却不想打包 /root/etc* 开头的文件,新打包文件放置为 /root/system.tar.bz2(这个文件自己不要打包自己),--exclude 不包含的意思。
tar -jcv -f /root/system.tar.bz2 --exclude=/root/etc* --exclude=/root/system.bar.bz2 /etc /root
范例三:仅备份比某个时刻还要新的文件
1、先由 find 找出比 /etc/passwd 还要新的文件
find /etc -newer /etc/passwd
2、查看 /etc/passwd 文件修改日期
ll /etc/passwd
3、使用 tar 来进行打包,并设置日期
tar -jcv -f /root/etc.newer.then.passwd.tar.bz2 --newer-mtime="2015/06/17" /etc/*
4、显示出文件
tar -jtv -f /root/etc.newer.then.passwd.tar.bz2 | grep -v '/$'
基本名称:tarfile 仅打包后的文件
tarball 打包压缩后的文件1
1.1.5 XFS 文件系统备份 xfsdump
xfsdump [-L S_label] [-M M_label] [-l #] [-f 备份档] 待备份资料
xfsdump -I
选项与参数:
-L:xfsdump 会记录每次备份的 session 标头,这里可以填写针对此文件系统的简易说明
-M:xfsdump 可以记录存储媒体的标头,这里可以填写此媒体的简易说明
-l :是 L 的小写,就是指定等级有 0~9 共10个等级,预设为 0,即完整备份
-f :有点类似 tar !后面接产生的文件,亦可接例如 /dev/st0 装置文件名或其他一般文件档名等
-I :是 i 的大写,从 /var/lib/xfsdump/inventory 列出目前备份的信息状态
注:
xfsdump 不支援没有挂载的文件系统备份!
xfsdump 必须使用 root 权限才能操作(涉及文件系统的关系)
xfsdump 只能备份 XFS 文件系统
xfsdump 备份下来的数据(文件或储存媒体)只能让 xfsrestore 解析
xfsdump 是透过文件系统的 UUID 来分辨各个备份档,因此不能备份两个具有相同 UUID 的文件系统
1.1.6 XFS 文件系统还原 xfsrestore
xfsrestore -I 用来查看备份文件资料,是 i 的大写
xfsrestore [-f 备份档] [-L S_label] [-s] 待复原目录 单一文件系统复原
xfsrestore [-f 备份文件] -r 待复原目录 透过累积备份文件来复原
xfsrestore [-f 备份文件] -i 待复原目录 进入互动模式
选项与参数:
-I:是 i 的大写,可查询备份数据,包括 Label 名称与备份时间
-f:后面接的就是备份档!
-L:就是 session 的 label name,可用 -I 查询到的数据,在这个选项后输入
-s:需要接某特定目录,亦即仅复原某一个文件或目录
-r:如果是用文件来储存备份数据,那这个就不需要使用。如果是一个磁带内有多个文件,需要这东西来达成累积复原
-i :进入互动模式,进阶管理员使用
1.1.7 dd 制作文件/备份文件
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 的意思