[转帖]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 ...
随机推荐
- $router.push跳转页面传参
$router.push传参与收参 //传参 <el-button type="text" @click="$router.push('/games/Match?i ...
- C语言编程需要掌握的核心要点有哪些? 编程大神为你总结了这20个
摘要:C语言作为编程的入门语言,学习者如何快速掌握其核心知识点,面对茫茫书海,似乎有点迷茫.为了让各位快速地掌握C语言的知识内容,在这里对相关的知识点进行了归纳. 引言 笔者有十余年的C++开发经验, ...
- 华为云MVP付健权:从机械工程师到AI开发者的华丽转身
摘要:谁说AI开发难,看一个机械工程师是如何转型成为AI工程师的. 付健权,华为云MVP,企业上云导师.软通动力,售前解决方案经理,为制造业讲解华为云产品,为客户提供上云和云上解决方案.为企业提供大数 ...
- KubeEdge@MEC:Kubernetes容器生态与5G的结合
摘要:边缘计算技术快速发展,5G MEC边云协同成为最新的发展趋势. 前言 边缘计算技术快速发展,5G MEC进入商业部署快车道,边云协同成为MEC的普遍诉求,KubeEdge社区洞悉这一趋势,按照C ...
- 云图说 | 分布式缓存服务DCS—站在开源Redis前辈的肩膀上,扬帆起航
阅识风云是华为云信息大咖,擅长将复杂信息多元化呈现,其出品的一张图(云图说).深入浅出的博文(云小课)或短视频(云视厅)总有一款能让您快速上手华为云.更多精彩内容请单击此处. 摘要:DCS基于开源Re ...
- PPT 做出动态路线动画
https://www.iconfont.cn/ 插入,起点.终点,两图标 编辑顶点,调整路线 添加淡出动画,持续时间1秒 再添加直线 从上一项开始 效果选项中,选择自动翻转 计时 -> 期间 ...
- Java SpringBoot FTP 上传下载文件
POM 添加依赖 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all< ...
- 如何在 Unity 游戏中集成 AI 语音识别?
简介 语音识别是一项将语音转换为文本的技术,想象一下它如何在游戏中发挥作用?发出命令操纵控制面板或者游戏角色.直接与 NPC 对话.提升交互性等等,都有可能.本文将介绍如何使用 Hugging Fac ...
- 获取标准报表CJI3的ALV数据
1.CJI3 运行标准程序CJI3,获取对象和业务货币值,在其他程序中展示 2.代码展示 CJI3对应程序名rkpep003,最终展示的ALV结构可以再程序中找到. 因为本实例只获取其中两个字段的值, ...
- WPF Window无边框窗体阴影效果
WPF通过WindowChrome实现Window无边框窗体阴影效果 代码: <Window x:Class="SunCreate.PACP.Client.UI.GIS.CameraD ...