CentOS7.3学习笔记总结(八十一)

半世苍凉 提交于 2020-12-21 16:34:18

dd命令帮助文件中是这样描述的,convert and copy a file(转换和复制文件),Copy a file, converting and formatting according to the operands(复制文件,根据操作对象进行转换和格式化)。dd命令是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

        image.png                                     

参数:

if=FILEif=文件名):输入文件名,缺省为标准输入,就是指定源文件

of=FILEof=文件名):输出文件名,缺省为标准输出,就是指定目标文件。

ibs=BYTES:一次读入bytes个字节,即指定一个块大小为bytes个字节。

obs=BYTES:一次输出bytes个字节,即指定一个块大小为bytes个字节。

bs=BYTES:同时设置读入和输出的块大小为bytes个字节。

cbs=BYTES:一次转换bytes个字节,即指定转换缓冲区大小。

skip=blocks:从输入文件开头跳过blocks个块后再开始复制。

seek=blocks:从输出文件开头跳过blocks个块后再开始复制。(注:当输出文件是磁盘或磁带时才有效)

count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。

conv=conversion:用指定的参数转换文件。

ascii:转换ebcdicascii

ebcdic:转换asciiebcdic

ibm:转换asciialternate ebcdic

block:把每一行转换为长度为cbs,不足部分用空格填充。

unblock:使每一行的长度都为cbs,不足部分用空格填充

lcase:把大写字符转换为小写字符

ucase:把小写字符转换为大写字符

swab:交换输入的每对字节

noerror:出错时不停止

notrunc:不截短输出文件

sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

实例:

1、  /dev/hdb整盘备份到指定路径的文件,或者把备份的文件恢复到指定的盘。

先创建一个100M的硬盘,分区、格式化、挂载到系统,创建一个测试文件test.txt

image.png

/dev/sdb1全盘备份到指定的路径的文件image_bak:

dd if=/dev/sdb1 of=/root/image_bak

image.png

删除/dev/sdb1中的test.txt文件,把备份的文件恢复到指定的盘中:

dd if=/root/image_bak of=/dev/sdb1

image.png

2、  备份全盘数据,并利用gzip工具进行压缩,保存指定路径的文件中;反之恢复。

dd if=/dev/sdb1|gzip>/root/image_bak.gz

image.png

恢复命令:

gzip -dc /root/image_bak.gz |dd of=/dev/sdb1#备份压缩后的test02.text文件不见了。

image.png

3、  备份全盘到到磁盘,也可以叫克隆硬盘

dd  if=/dev/sdb1 of=/dev/sdc1

4、  增加swap分区文件大小100M

dd if=/dev/sdb1 of=/swapfilebs=1024 count=102400

把文件变成swap文件:

mkswap /swapfile

启用这个swap文件:

swapon /swapfile

编辑/etc/fstab文件,使每次开机是自动加载swap文件:

swapfile swap swap default 0 0

5、  销毁数据

dd if=/dev/urandom of=/dev/sdb1#利用随机的数据填充硬盘。

image.png

6、  修复硬盘

dd if=/dev/sdb1 of =/dev/sdb1#该命令可以修复一些数据,过程安全,高效。

image.png

7、  远程备份

源主机执行:

dd if=/dev/sdb1 |ssh 10.41.1.96 dd of=/root/sdb1_bak

image.png

目标主机查看备份文件

image.png

目标主机执行:

ssh 10.41.1.97 dd if=/dev/sdb1 | dd of=/root/sdb1_bak01

 image.png


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!