linux的压缩与备份

一、打包

格式:tar -参数 <打包文件名> <打包的目标>

作用:将文件或者目录打包

重要参数:-f 使用归档文件,一定要加上这个参数

-c 新建打包文件

-x 解包文件

-t 可以不用解包就能查看包文件内容

-v 打包和解包时显示详细信息

-u 保持打包文件中的文件或者目录是最新的

-C 解包到指定目录

-M 拆包打包,需要配合-L使用

-L 指定每个包的大小

-r 将一个或者多个文件追加到包中

--remove-file打包后删除原文件

--delete 删除包中文件

--get 提取包中文件

打包:tar -vc -f zx.tar f1 f2 f3

查看打包文件:tar -t -f zx.tar

解包:tar - x v-f zx.tar f1 f2 f3

解包到指定目录:tar -xv -f zx.tar -C/etc

将这zx.tar 追加到mm.tar:tar -A -f mm.tar zx.tar

将文件f7追加到mm.tar ;tar -r -f mm.tar f7

将zxzx.tar打包并分割3000k的包:tar cf - zxzx/ | split -b 3000k - zxzx.tar.part

若要合并这些分割的文件,使用以下命令:cat zxzx.tar.part* | tar xf -

打包后删除源文件:tar -cv -f zx.tar f1 f2 --remove-files

将zx.tar中f1删除:tar -f zx.tar --delete f1

提取zx.tar中的f2 :tar -f zx.tar --get f2

二、压缩与解压缩的三种方式

1 gzip gunzip

2 bzip2 bunzip2

3 xz unxz

以上三种都是将文件/打包文件压缩(不可以对单个目录 行压缩)

以上三种格式:Gzip/bzip2/xz -选项 压缩目标

其中 1 表示压缩速度快,但压缩小

9 表示压缩速度慢,但压缩强

一般用 -6 速度和压缩比正好

Eg:gzip -6 zx.tar

Bzip2 -6 zx1.tar

Xz -6 zx2.tar

解压缩

Gunzip/bunzip2/unxz 解压缩目标
eg: gunzip zx.tar.gz

Bunzip2 zx1.tar.bz2

Unxz zx2.tar.xz

tar 可以用z,j,J来调用相关压缩程序来完成压缩和解压缩

" z " 用来调用 gzip gunzip

" j " 用来调用 bzip2 bunzip2

" J " 用来调用 xz unxz

Eg:tar -cvz -f zx.tar.gz f1 f2 f3

tar -cvj -f zx.tar.bz2 f4 f5 f6

tar -cvJ -f zx.tar.xz f7 f8 f9

解压缩

tar -xvz -f zx.tar.gz

tar -xvj -f zx.tar.bz2

tar -xvJ -f zx.tar.xz

三.备份

1完整备份 :把当前所有文件都做备份

优点:恢复数据完整

缺点:恢复耗费时间长

2增量备份:相对于前一天来说,对增加和修改的数据进行备份

优点: 备份的数据少 并且没有重复的数据

缺点:恢复备份很复杂

3差异备份:相对于完整备份来说,只对变化的数据进行备份

优点:恢复速度快

缺点:但相对于增量备份来说所占空间大

备份级数

0代表基本级也就是完整备份

1代表差异备份,相对于完整备份来说可以是差异备份也可以是增量备份 一般认为是差异备份

2是根据一级改变。

银行备份策略

(注意:只能备份比自己级数低的,不备份同级 不恢复同级)

|------------|-----------|------------------------------------------|
| 周日 | 0 | 完整备份 |
| 周一 | 2 | 相对于周日的完整备份,可以成为差异备份 |
| 周二 | 2 | 由于不备份同级 所以只能相对于周日备份 也为差异备份 |
| 周三 | 1 | 由于不能备份比自己级数低的,所以只能相对于周日备份,也是差异备份 |
| 周四 | 2 | 相对于周三 是增量备份 |
| 周五 | 2 | 不能同级备份,所以只能相对于周三 是累计增量备份 |
| 周六 | 2 | 不能同级备份,所以只能相对于周三 也是累计增量备份 |

如果遇到周六系统崩溃时,需要先恢复周日内容,然后恢复周三(周三内容包括周一周二的),再恢复周五(周五包括周三周四)。

四、Dump 文件系统备份

格式dump 选项 备份文件名 备份目标

只能备份文件系统 不能备份单个目录

-f 指定备份文件名

-u 备份完成后将 备份时间,星期,层级,文件系统信息等信息记录到/etc/dumpdates

-w显示需要备份的文件 以及最后一次备份的信息

1将 /boot 目录备份到/dev/sdb1

Df -h 查看/boot 内容

Mkfs -t ext4 /dev/sdb1

Mount /dev/sdb1 /mnt/zx

Dump -0uf /mnt/zx/zx.dump /boot

五 系统还原--restore

功能:将dump备份内容进行还原

restore -r 指定还原的操作

restore -f 指定备份文件名

restore -v 显示还原的详细动作

restore -t 查看备份的内容

EG:恢复/mnt/ll/0.dump 所备份的所有内容到当前目录

首先在/mnt目录下建立一个ll目录,将/boot目录备份到/mnt/ll目录下。

查看/mnt/ll目录,然后将dump备份的内容还原在当前目录下。

Restore -rf /mnt/ll/0.dump

六、dd系统备份

1、dd用使用

格式:#dd if=/路径/文件 of=/路径/文件 count=number bs=xxK(M、G、B)

(1)将光盘转换为 iso :

#dd if=/dev/cdrom of=./dd.iso

(2)将 /dev/sda 转换到 /dev/sdb :

#dd if=/dev/sdb of=/dev/sdc

(3)将 /dev/sda1 转换到 /dev/sdb1

#dd if=/dev/sda1 of=/dev/sdb1

(4)将 /dev/sda3 转换成一个文件

#dd if=/dev/sda1 of=/mnt/mm/sda1.img

(5)创建一个 100M 的虚拟硬盘 , 每次读写缓存为 1M, 总计累计 100 次

#dd if=/dev/zero of=disk1.img bs=1M count=100

(6)建立一个 swap 文件 , 并使用。

#dd if=/dev/zero of=/mnt/swap bs=100M count=1

#mkswap /mnt/swap

#chmod 600 /mnt/swap

#swapon /mnt/swap

相关推荐
szc17672 分钟前
docker 相关命令
java·docker·jenkins
CP-DD7 分钟前
Docker 容器化开发 应用
运维·docker·容器
程序媛-徐师姐11 分钟前
Java 基于SpringBoot+vue框架的老年医疗保健网站
java·vue.js·spring boot·老年医疗保健·老年 医疗保健
yngsqq12 分钟前
c#使用高版本8.0步骤
java·前端·c#
尘浮生22 分钟前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
小白不太白95026 分钟前
设计模式之 模板方法模式
java·设计模式·模板方法模式
Tech Synapse28 分钟前
Java根据前端返回的字段名进行查询数据的方法
java·开发语言·后端
xoxo-Rachel35 分钟前
(超级详细!!!)解决“com.mysql.jdbc.Driver is deprecated”警告:详解与优化
java·数据库·mysql
乌啼霜满天24937 分钟前
JDBC编程---Java
java·开发语言·sql