感谢支持
我们一直在努力

Linux dd备份和恢复

Linux/Uix dd命令是一个非常好的管理磁盘命令

dd命令作用:指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换,起到一个初始化磁盘的作用


dd指令选项详解

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…]–>用指定的参数转换文件

ascii–>转换EBCDIC为 ASCII

ebcdic–>转换ASCII为 EBCDIC

ibm–>转换ASCII为 alternate EBCDIC

block–>把每一行转换为长度为 cbs的记录,不足部分用空格填充

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

lcase–>把大写字符转换为小写字符

ucase–>把小写字符转换为大写字符

swab–>交换输入的每对字节

noerror–>出错时不停止

notrunc–>不截短输出文件

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

注意:指定数字的地方若以下列字符结尾乘以相应的数字:b=512,c=1, k=1024, w=2, xm=number m,kB=1000,K=1024,MB=1000*1000,M=1024*1024,GB=1000*1000*1000,G=1024*1024*1024

=================================================================

创建基于文件的sswap分区:

a.ddif=/dev/zeroof=/project/swapfilebs=1024count=500000=>通过zero文件生成一个5G的文件

b.mkswap/project/swapfile=>makesfileusableforswapping生成swap分区文件

c.swapon/project/swapfile=>enablesswapping,使swap分区生效

d. swapoff/project/swapfile=>关闭指定的swap分区

e.swapoff-a=>disablesallswappingforentrieslistedin:/etc/fstab关闭所有fstab中的swap分区

=================================================================

备份:

[root@server~]#ddif=/dev/sdaof=/dev/sdb =>备份整个磁盘到另外一个磁盘

[root@server~]#ddif=/dev/sdbof=sda.bak=>备份整个磁盘为某个文件

[root@server~]#ddif=/dev/sda|gzip>sda.bak.gz=>备份并且压缩

[root@server~]#dd if=/dev/sdaof=dbt.bak count=1 bs=512 skip=446

=> 跳过前446字节备份磁盘第一扇区的后66字节DPT信息到指定文件

==================================================================

恢复:

[root@server~]#ddif=/dev/sdbof=/dev/sda

[root@server~]#gzip-dcsda.bak.gz|ddof=/dev/sda

[root@server~]# dd if=/path/to/image of=/dev/hdx count=1 bs=512 seek=446
=>
将备份DPT信息写到MBR后面的66字节

==================================================================

销毁数据:

[root@server~]#ddif=/dev/urandomof=/dev/sda1=>利用随机数填充硬盘数据,达到销毁数据的作用

 通过比较dd指令输出中所显示的命令执行时间(选时间最少的那个),即可确定系统最佳的block size大小

注意其中磁盘要以 -o sync的选项挂载,否则会导致数据写入到缓存中,而非写入磁盘上去,导致测试不准确
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

测试读写速度

注意:其中磁盘要以 -o sync的选项挂载,否则会导致数据写入到缓存中,而非写入磁盘上去,导致测试不准确
[root@server ~]# mount -o sync,remount /

[root@server ~]# mount | grep sync

/dev/sda2 on / type ext4 (rw,sync)

[root@server ~]# dd if=/dev/zero of=/tmp/test.dd bs=4096 count=5000 => 测试写入速度

[root@server ~]# dd if=/tmp/test.dd of=/dev/null bs=4096 count=5000=> 读取测试

赞(0) 打赏
转载请注明出处:服务器评测 » Linux dd备份和恢复
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏