Linux之文件与文件系统的压缩,打包,备份
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 的压缩
2. gzip命令
1. 用法
-d 解压缩
-t 检查压缩文件的一致性
-v 显示压缩时的详细信息
-# 数字为压缩比,1为最小压缩比,最快;9为最大压缩比,最慢
默认情况压缩的时候,源文件就被删除了。
2. 例子
gzip -v 源文件 > 目标文件.gz 这样会保留源文件存在
gzip -d 压缩文件.gz
3. 查看压缩包的命令
zcat
zmore
zgrep
zless
3. bzip2命令
1. 用法
-d 解压缩
-k 保留源文件
-v 压缩时的压缩比等信息
-# 数字为压缩比,1为最小压缩比,最快;9为最大压缩比,最慢
2. 例子
bzip2 -k 源文件 目标文件.bz2
bzip2 -d 压缩文件.bz2
3. 查看压缩包的命令
bzcat 压缩文件.bz2
4. xz命令
1. 用法
-d 解压缩
-k 保留源文件
-v 压缩时的压缩比等信息
-t 检查压缩包的完整性
-# 数字为压缩比,1为最小压缩比,最快;9为最大压缩比,最慢
2. 例子
xz -d 压缩包.xz
xz -k 源文件
3. 查看压缩包的命令
xzcat
xzless
xzmore
xzgrep
5. 打包命令tar
-c:建立打包文件
-j:说明此压缩是bzip2的方式,文件名为*.tar.bz2
-z: 说明此压缩是gzip的方式,文件名为:*.tar.gz
-J: 说明此压缩是xz的方式,文件名为:*.tar.xz
-v: 在压缩/解压缩的过程中,将正在处理的文件名显示出来
-t: 只显示文件的名称,这是它与-v的不同之处
-x: 解打包/解压缩的功能
-f filename: 目标文件名
-C(大写):用在解压缩的时候,指定解压缩到的位置。
-p:保留原本文件的属性和权限,常用于备份
6. 下面是具体的实例
1. 压缩/etc目录到/home/kanhuigai下,压缩后的目录名为etc_backup.tar.gz和etc_backup.tar.bz2,分别采用两种压缩方法。具体如下:
查看压缩文件里面的文件名称:
tar –jtv –f etc_backup.tar.bz2 显示bz2压缩文件包含的文件名称,大小,权限等信息
tar –ztv –f etc_backup.tar.gz显示gz压缩文件包含的文件名称,大小,权限等信息。
2. 解压缩文件:
tar –jxv –f /home/kanhuigai/etc_backup.tar.bz2 –C /home/kanhuigai2
tar –zxv –f /home/kanhuigai/etc_backup.tar.gz –C /home/kanhuigai2
3. 解压缩文件包中的某一个文件
先查看被解压缩的文件的名称,使用命令:
tar –jtv –f 压缩包名
解压缩具体某一个文件,使用命令:
tar –jxv –f 压缩包名 待解包的文件名
tar -zxvf /opt/soft/test/log30.tar.gz log2013.log
4. 打包某个目录,但是不包含下面的某个文件或者目录
tar –jcv –f *.tar.bz2 --exclude=文件或者目录名称 被打包的目录名
tar -zcv -f zabbix.tar.gz --exclude=/tmp/zabbix-2.2.2/bin /tmp/llzabbix-2.2.2 单个子目录排除
sudo tar -zcv -f zabbix.tar.gz --exclude=/tmp/zabbix-2.2.2/bin --exclude=/tmp/zabbix-2.2.2/build /tmp/zabbix-2.2.2 多个子目录排除
7. 文件系统的备份与还原
1. xfsdump
完整备份
xfsdump -l 0 -L boot_all -M boot_all -f /srv/boot.dump /boot
差异备份
xfsdump -l 1 -L boot_2 -M boot_2 -f /srv/boot.dump1 /boot
2. xfsrestore
观察备份内容
xfsrestore -I
还原完整备份
xfsrestore -f /srv/boot.dump -L boot_all /boot 覆盖原来的/boot
xfsrestore -f /srv/boot.dump -L boot_all /tmp/boot 还原到其它目录下
还原差异备份
xfsrestore -f /srv/boot.dump1 /tmp/boot
互相模式
xfsrestore -f /srv/boot.dump1 -i /tmp/boot 进入互动模式,可以有选择的还原文件和目录
8. 其它备份工具
1. dd命令
1. 备份/etc/passwd到另外一个文件中
dd if=/etc/passwd of=/tmp/passwd.back
2. 备份文件,并指定block和count
dd if=/dev/zero of=/srv/loopdev bs=1M count=512

浙公网安备 33010602011771号