linux之dd命令
复制文件并对原文件的内容进行转换和格式化处理补充说明
dd命令用于复制文件并对原文件的内容进行转换和格式化处理。dd命令功能很强大的,对于一些比较底层的问题,使用dd命令往往可以得到出人意料的效果。用的比较多的还是用dd来备份裸设备。但是不推荐,如果需要备份oracle裸设备,可以使用rman备份,或使用第三方软件备份,使用dd的话,管理起来不太方便。
建议在有需要的时候使用dd对物理磁盘操作,如果是文件系统的话还是使用tarbackupcpio等其他命令更加方便。另外,使用dd对磁盘操作时,最好使用块设备文件。语法dd(选项)命令选项bs字节数:将ibs(输入)与obs(输出)设成指定的字节数;cbs字节数:转换时,每次只转换指定的字节数;conv关键字:指定文件转换的方式;count区块数:仅读取指定的区块数;ibs字节数:每次读取的字节数;obs字节数:每次输出的字节数;of文件:输出到文件;seek区块数:一开始输出时,跳过指定的区块数;skip区块数:一开始读取时,跳过指定的区块数;help:帮助;version:显示版本信息。实例ddifdevzeroofsun。txtbs1Mcount110recordsin10recordsout1048576bytes(1。0MB)copied,0。006107seconds,172MBs〔rootlocalhosttext〕1。1Msun。txt
该命令创建了一个1M大小的文件sun。txt,其中参数解释:if代表输入文件。如果不指定if,默认就会从stdin中读取输入。of代表输出文件。如果不指定of,默认就会将stdout作为默认输出。bs代表字节为单位的块大小。count代表被复制的块数。devzero是一个字符设备,会不断返回0值字节()。
块大小可以使用的计量单位表
单元大小
代码
字节(1B)
c
字节(2B)
w
块(512B)
b
千字节(1024B)
k
兆字节(1024KB)
M
吉字节(1024MB)
G
以上命令可以看出dd命令来测试内存操作速度:1048576bytes(1。0MB)copied,0。006107seconds,172MBs
生成随机字符串
我们甚至可以使用devurandom设备配合dd命令来获取随机字符串。ddifdevurandombs1count15base64w0150recordsin150recordsout15bytes(15B)copied,0。000111993s,134kBswFRAnlkXeBXmWs1MyGEs常用案例汇总1。将本地的devhdb整盘备份到devhddddifdevhdbofdevhdd2。将devhdb全盘数据备份到指定路径的image文件ddifdevhdbofrootimage3。将备份文件恢复到指定盘ddifrootimageofdevhdb4。备份devhdb全盘数据,并利用gzip工具进行压缩,保存到指定路径ddifdevhdbgziprootimage。gz5。将压缩的备份文件恢复到指定盘gzipdcrootimage。gzddofdevhdb6。备份与恢复MBR备份磁盘开始的512个字节大小的MBR信息到指定文件:ddifdevhdaofrootimagecount1bs512count1指仅拷贝一个块;bs512指块大小为512个字节。恢复:ddifrootimageofdevhad将备份的MBR信息写到磁盘开始部分7。备份软盘ddifdevfd0ofdisk。imgcount1bs1440k(即块大小为1。44M)8。拷贝内存内容到硬盘ddifdevmemofrootmem。binbs1024(指定块大小为1k)9。拷贝光盘内容到指定文件夹,并保存为cd。iso文件ddifdevcdrom(hdc)ofrootcd。iso10。增加swap分区文件大小第一步:创建一个大小为256M的文件:ddifdevzeroofswapfilebs1024count262144第二步:把这个文件变成swap文件:mkswapswapfile第三步:启用这个swap文件:swaponswapfile第四步:编辑etcfstab文件,使在每次开机时自动加载swap文件:swapfileswapswapdefault0011。销毁磁盘数据ddifdevurandomofdevhda1注意:利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。12。测试硬盘的读写速度ddifdevzerobs1024count1000000ofroot1Gb。fileddifroot1Gb。filebs64kddofdevnull通过以上两个命令输出的命令执行时间,可以计算出硬盘的读、写速度。13。确定硬盘的最佳块大小:ddifdevzerobs1024count1000000ofroot1Gb。fileddifdevzerobs2048count500000ofroot1Gb。fileddifdevzerobs4096count250000ofroot1Gb。fileddifdevzerobs8192count125000ofroot1Gb。file通过比较以上命令输出中所显示的命令执行时间,即可确定系统最佳的块大小。14。修复硬盘:ddifdevsdaofdevsda或ddifdevhdaofdevhda当硬盘较长时间(一年以上)放置不使用后,磁盘上会产生magneticfluxpoint,当磁头读到这些区域时会遇到困难,并可能导致IO错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。并且这个过程是安全、高效的。15。利用netcat远程备份ddifdevhdabs16065bnetcattargethostIP1234在源主机上执行此命令备份devhdanetcatlp1234ddofdevhdcbs16065b在目的主机上执行此命令来接收数据并写入devhdcnetcatlp1234bzip2partition。imgnetcatlp1234gzippartition。img以上两条指令是目的主机指令的变化分别采用bzip2、gzip对数据进行压缩,并将备份文件保存在当前目录。将一个很大的视频文件中的第i个字节的值改成0x41(也就是大写字母A的ASCII值)echoAddofbigfileseekibs1count1convnotrunc