这章节主要介绍Linux或ubuntu系统下主要提供的两个存档工具,tar与dd。
tar
直接保存数据会占用很大的空间,所以为节省存储空间,tar使用文件打包的命令行工具,压缩这个名词相信大家都已经知道了,这里不再赘述,直入正题。
- 打包
tar -czvf 打包文件名 源文件
选项:
-c: 打包
-z:压缩
-v: 显示打包过程
-f: 指定打包后的文件名
例如:
tar -czvf text.tar img1
#打包到指定目录
tar czvf test.tar *.txt -C /home/work
- 解打包
tar -xzvf 打包文件名
选项:
-x: 解打包
例如:
tar -xvf img1.tar
dd
dd是一个文件转移命令,dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小地块复制文件,并在拷贝的同时进行指定的转换和格式处理。
1. 命令简介
dd 的主要选项:
指定数字的地方若以下列字符结尾乘以相应的数字:
b=512, c=1, k=1024, w=2, xm=number m
if=file :输入文件名,缺省为标准输入。
of=file :输出文件名,缺省为标准输出。
ibs=bytes
一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
obs=bytes
一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
bs=bytes
同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
cbs=bytes
一次转换 bytes 个字节,即转换缓冲区大小。
skip=blocks
从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks
从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。
count=blocks
仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
conv=conversion[,conversion...]
用指定的参数转换文件。
- 备份:
dd if=/dev/A of=/dev/B
将本地的/dev/A整盘备份到/dev/B,一般是用来拷贝镜像。
当然,这部分if和of跟的也是具体的path路径。
dd if=/dev/hdx | gzip >/path/to/image.gz
备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径
恢复:
dd if=/path/to/image of=/dev/hdx
将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/hdx
将压缩的备份文件恢复到指定盘
- 磁盘管理
得到最恰当的block size
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file
dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file
dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file
dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小
2.4.2测试硬盘读写速度
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度
dump与restore
dunp是一个比较装专业的备份工具,可以备份任何类型的文件,ubuntu默认是没有安装dump和restore两个工具的,可分别执行sudo apt-get install dump和sudo apt-get install restore
- 使用dump命令备份
在使用dump进行备份时候,需要指定设定一个级别,它是0-9之间的数字,级别为0是完全备份,通过这种方式可以很轻松的实现增量备份,差异备份,甚至每日备份。
当然,在备份之前,你是不是得知道完全备份所需的空间吧,以防止磁盘或者磁带空间不足的问题,举个例子:
sudo dump -0s /dev/sda1
这里的0代表的是完全备份,s代表的是统计备份所需空间。
-f 指定文件的路径和名称
-u 表示更新数据库文件/etc/dumpdates
dump -0u -f /path/text.dump /boot
- 增量与差异备份操作
- 增量备份
dump -0u -f /tmp/boot0.dump /boot 完全备份
dump -1u -f /tmp/boot1.dump /boot 级别1
dump -2u -f /tmp/boot2.dump /boot 级别2
dump -3u -f /tmp/boot3.dump /boot 级别3
- 差异备份
dump -0u -f /tmp/boot0.dump /boot 完全备份
dump -1u -f /tmp/boot1.dump /boot 级别1
dump -1u -f /tmp/boot2.dump /boot 级别1
dump -1u -f /tmp/boot3.dump /boot 级别1
我估计这个程序应该你就比较清楚的明白什么是增量备份与差异备份。
- restore
利用restore去恢复dump备份的文件有两种方式
交互模式和直接恢复
恢复数据之前要浏览备份文件中的数据,可以使用以下命令,(-t选项表示查看)
restore -tf /tmp/boot.dump
要恢复一个备份,可以使用以下命令(-r选项表示重建)
restore -rf /tmp/boot.dump
使用以下命令进入交互式恢复模式
restore -if /tmp/boot.dump
今天就到这,下一章我会跟大家分享常见的linux系统软件包管理。
就是常用的apt-get 数据源等内容笔记。
欢迎点赞,收藏,关注。