[转帖]dd - Linux世界中的搬运工
《存储工具系列文章》主要介绍存储相关的测试和调试工具,包括不限于dd、fio、vdbench、iozone、iometer、cosbench等性能负载工具,及strace等调试工具。
dd,是 device driver 的缩写,它可以称得上是“Linux 世界中的搬运工”,它用来读取设备、文件中的内容,并原封不动地复制到指定位置。
1 dd参数解析
名称:
dd - 用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。
语法:
dd [OPERAND]
dd OPTION
解析:
根据operand,拷贝一个文件,并进行转换。
bs=BYTES
设置一次读写BYTES字节(同ibs,obs);
cbs=BYTES
一次转换BYTES字节数;
ibs=BYTES
一次读取bytes字节;
obs=BYTES
一次写入bytes字节;
conv=CONV
将一个文件转换为制定的格,CONV可以为参数见“CONV参数说明”;
count=BLOCKS
只拷贝输入的BLOCKS块;
if=FILE
从文件FILE中读取数据(FILE可以是文件名,也可以是设备名称);
of=FILE
向文件FILE中写入数据(FILE可以是文件名,也可以是设备名称);
seek=BLOCKS
在出文件中,跳过开头的ibs*blocks块;
skip=BLOCKS
在输入文件中,跳过开头的ibs*blocks块;
iflag=FLAGS
指定读的方式FLAGS,参见“FLAGS参数说明”
oflag=FLAGS
指定写的方式FLAGS,参见“FLAGS参数说明”;
status=noxfer
suppress transfer statistics
CONV参数说明:
ascii -转换 EBCDIC 为 ASCII。
ebcdic -转换 ASCII 为 EBCDIC。
ibm -转换ASCII 为 alternate EBCDIC.
block -把每一行转换为长度为 cbs 的记录,不足部分用空格填充。
unblock-使每一行的长度都为 cbs ,不足部分用空格填充。
lcase -把大写字符转换为小写字符。
ucase -把小写字符转换为大写字符。
nocreat -不创建心的输出文件
notruncdo -不截短输出文件
swab -交换输入的每对字节。 Unlike the Unix dd, this works when an odd number of bytes are read. If the input file contains an odd number of bytes, the last byte is simply copied (since there is nothing to swap it with).
noerror -出错时不停止。
sync -把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。
fdatasync -physically write output file data before finishing
fsync -同上,但也要写元数据
FLAGS参数说明:
append -append mode (makes sense only for output; conv=notrunc sug-gested)
direct 读写数据采用直接IO方式;
directory 读写失败除非是directory;
dsync 读写数据采用同步IO;
sync 同上,但是针对是元数据
fullblock 堆积满block(accumulate full blocks of input )(iflag only);
nonblack 读写数据采用非阻塞IO方式
noatime 读写数据不更新访问时间
noctty -do not assign controlling terminal from file
nofollow -do not follow symlinks
OPTION说明:
--help
display this help and exit
--version
output version information and exit
2 测试实例
清单1:
要把一张软盘的内容拷贝到另一张软盘上,利用/tmp作为临时存储区。把源盘插入驱动器中,输入下述命令:
[root@RedHat home]#dd if =/dev/fd0 of = /tmp/tmpfile
拷贝完成后,将源盘从驱动器中取出,把目标盘插入,输入命令:
[root@RedHat home]# dd if = /tmp/tmpfile of =/dev/fd0
软盘拷贝完成后,应该将临时文件删除:
[root@RedHat home]#rm /tmp/tmpfile
清单2:
采用dd测试硬盘的读写速度
Ø 可以通过使用dd if=/dev/zero of=/file 来测试磁盘的纯写入性能。
Ø 使用dd if=/file of=/dev/null 来测试磁盘的纯读取性能。
Ø 使用dd if=/file1 of=/file2 来测试磁盘的读写性能
测试硬盘的结果如下:
(1)测试纯写入性能
-
[root@RedHat home]# dd if=/dev/zero of=test bs=8k count=10000 oflag=direct
-
10000+0 records in
-
10000+0 records out
-
81920000 bytes (82 MB) copied, 3.9123 s, 20.9 MB/s
结果为20.9 MB/s。
(1)测试纯读取性能
-
[root@RedHat home]# dd if=test of=/dev/null bs=8k count=10000 iflag=direct
-
10000+0 records in
-
10000+0 records out
-
81920000 bytes (82 MB) copied, 0.424138 s, 193 MB/s
结果为193 MB/s。
[转帖]dd - Linux世界中的搬运工的更多相关文章
- [转帖]Linux操作系统中,*.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z等格式的压缩与解压
Linux操作系统中,*.zip.*.tar.*.tar.gz.*.tar.bz2.*.tar.xz.*.jar.*.7z等格式的压缩与解压 https://blog.csdn.net/gatieme ...
- [转帖]Linux命令中特殊符号
Linux命令中特殊符号 转自:http://blog.chinaunix.net/uid-16946891-id-5088144.html 在shell中常用的特殊符号罗列如下:# ; ;; . ...
- [转帖]Linux shell中2>&1的含义解释 (全网最全,看完就懂)
Linux shell中2>&1的含义解释 (全网最全,看完就懂) https://blog.csdn.net/zhaominpro/article/details/82630528 ...
- Linux系统中的vi/vim指令【详解】
vi是Unix世界里极为普遍的全屏幕文本编辑器,vim是它的改进版本Vi IMproved的简称.几乎可以说任何一台Unix机器都会提供这套软件. 只要简单的在Shell下执行vi就可以进入 vi 的 ...
- Linux内存中的Cache真的能被回收么?
在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: [root@tencent64 ~]# free ...
- Linux内核中流量控制
linux内核中提供了流量控制的相关处理功能,相关代码在net/sched目录下:而应用层上的控制是通过iproute2软件包中的tc来实现, tc和sched的关系就好象iptables和netfi ...
- linux学习过程中所需要看的一些书籍
入门类 一直认为,在一个系统上学习开发之前,首先需要熟悉这个系统的使用.鉴于天朝的国情,绝大部分人第一个接触的操作系统就是Windows,因此对于这绝大部分人来说,如果要学习Linux开发,学会使用这 ...
- 调皮的程序员:Linux之父雕刻在Linux内核中的故事
本文内容由公众号“格友”原创分享. 1.引言 (不羁的大神,连竖中指都这么帅) 因为LINUX操作系统的流行,Linus 已经成为地球人都知道的名人.虽然大家可能都听过钱钟书先生的名言:“假如你吃 ...
- [转帖]dd命令详解
dd命令详解 https://czmmiao.iteye.com/blog/1748748 之前一直对linux的命令很恐惧 现在发现 其实不是那么复杂 要仔细学习就可以了 比如 dd = disk ...
- 【转帖】Linux发行版:CentOS、Ubuntu、RedHat、Android、Tizen、MeeGo
Linux发行版:CentOS.Ubuntu.RedHat.Android.Tizen.MeeGo作者:阳光岛主 原文在这儿 Linux,最早由Linus Benedict Torvalds在199 ...
随机推荐
- vue遮罩层
<template> <div class="hello"> <button @click="toggleModal">打开 ...
- Cesium中用到的图形技术——Computing the horizon occlusion point
译者注:本文翻译自Cesium官方博文<Computing the horizon occlusion point>,by KEVIN RING. 你厌倦了地平线剔除吗? 太好了,我也没有 ...
- Java 获取Excel中的表单控件
Excel中可通过[开发工具]菜单栏下插入表单控件,如文本框.单选按钮.复选框.组合框等等,插入后的控件可执行设置控件格式,如大小.是否锁定.位置.可选文字.数据源区域.单元格链接等.当Excel中已 ...
- EDS从小白到专家丨打造你的专属“数据物流”系统
"数据快递"如何支撑便捷就医?本期让我们来了解如何使用EDS打造专属的"数据物流"系统...... 本文分享自华为云社区<[EDS从小白到专家]第2期-E ...
- 华为中国生态大会2021举行在即,GaussDB将重磅发布5大解决方案
摘要:企业数字化转型如火如荼,云成为数字化与新基建的关键要素,数据成为智能时代新的生产资料和企业数字化的生命,而数据库则是支撑数据生命线的底座. 本文分享自华为云社区<华为中国生态大会2021举 ...
- TML转义字符:xss攻击与HTML字符的转义和反转义
xss与转义符 xss简单来说: XSS 攻击是页面被注入了恶意的代码 XSS 漏洞是 可以让攻击者注入恶意代码可执行的漏洞 具体参看之前写的: web开发前端安全问题总结--web前端安全问题汇总 ...
- 接口文档 token发展史 jwt介绍和原理 drf-jwt快速使用
目录 昨日回顾 认证 权限 频率 全局异常处理 接口文档 接口文档编写 drf自动生成接口文档 cookies-session-token发展史 jwt介绍和原理 jwt的构成 base64的编码和解 ...
- ABAP使用异步远程RFC实现并行处理
1.使用场景 当开发复杂报表,需要处理大量数据,不管怎么优化计算和查询语句,程序的运行效率还是达不到用户要求,怎么办? 为了解决这个问题,就需要程序实现并行处理. 本文档就是通过异步调用远程RFC的办 ...
- SELinux 入门 pt.2
哈喽大家好,我是咸鱼 在<SELinux 入门 pt.1>中,咸鱼向各位小伙伴介绍了 SELinux 所使用的 MAC 模型.以及几个重要的概念(主体.目标.策略.安全上下文) 我们还讲到 ...
- POJ - 1611 : The Suspects (普通并查集)
思路: 模板题,一步一步加入集合,最后判断有多少人跟0在同一个集合就行了. #include<iostream> #include<cstdio> using namespac ...