`
desert3
  • 浏览: 2160572 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Linux time命令、dd命令、测试硬盘读写速度、磁盘备份恢复

 
阅读更多
time命令常用于测量一个命令的运行时间,注意不是用来显示和修改系统时间的(这是date命令干的事情)。它不仅仅是测量运行时间,还可以测量内存、I/O等的使用情况。一个程序在运行时使用的系统资源通常包括CPU、Memory和I/O等,其中CPU资源的统计包括实际使用时间(real time)、用户态使用时间(the process spent in user mode)、内核态使用时间(the process spent in kernel mode)。但是简单的使用time命令并不能得到内存和I/O的统计数据
命令格式:
time <command> [<arguments...>]

例子:time find . -name "mysql.sh"
在命令执行完成之后就会打印出CPU的使用情况:
real    0m14.837s <== 实际使用时间(real time)
user    0m0.030s  <== 用户态使用时间(the process spent in user mode)
sys     0m0.120s  <== 内核态使用时间(the process spent in kernel mode)
注1:real远大于user加上sys,因为find需要遍历各个目录,需要大量的I/O操作,而磁盘I/O通常是最慢的环节,因此大部分时间find进程都在等待磁盘I/O完成。
注2:使用-p参数时,就直接打印所需时间的数值,单位为秒,而不是更友好的格式,包括分钟、秒钟的显示方式。

Linux系统中time命令其实不止一个:
执行type -a time命令
time is a shell keyword
time is /usr/bin/time
通过这条命令我们可以发现我们常用的time其实是一个Shell关键字,还有一个外部命令/usr/bin/time(外部命令功能更强大)

例子:使用外部time命令输出内存、IO等更加多的信息 /usr/bin/time -v find . -name "mysql.sh"

time命令输出信息的重定向:time命令的输出信息是打印在标准错误输出上的
方法1: 将time命令和将要执行的命令行放到一个shell代码块中,也就是一对大括号。如下,注意分隔符、空格的使用。
{ time command-line; } 2>file
方法2: 使用子Shell的方式。如下,这里time紧贴着小括号(也可以的,命令行结束也不必带分号。当然最好还是用第一种方式,毕竟启动一个子shell是要多占些资源的。
(time command-line) 2>file

dd命令:Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换
dd 的主要选项:
  • if=file: 输入文件名,缺省为标准输入。
  • of=file: 输出文件名,缺省为标准输出。
  • count=blocks: 仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
  • bs=bytes: 同时设置读写块的大小为 bytes ,可代替 ibs 和 obs 。
  • ibs=bytes: 一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
  • obs=bytes: 一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
  • cbs=bytes: 一次转换 bytes 个字节,即转换缓冲区大小。
  • skip=blocks: 从输入文件开头跳过 blocks 个块后再开始复制。
  • seek=blocks: 从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。
  • conv=conversion[,conversion...]: 用指定的参数转换文件。
  • conv = ASCII 把EBCDIC码转换为ASCII码。
  • conv = ebcdic 把ASCII码转换为EBCDIC码。
  • conv = ibm 把ASCII码转换为alternate EBCDIC码。
  • conv = blick 把变动位转换成固定字符。
  • conv = ublock 把固定们转换成变动位
  • conv = ucase 把字母由小写变为大写。
  • conv = lcase 把字母由大写变为小写。
  • conv = notrunc 不截短输出文件。
  • conv = swab 交换每一对输入字节。
  • conv = noerror 出错时不停止处理。
  • conv = sync 把每个输入记录的大小都调到ibs的大小(用ibs填充)。


结合time、dd命令测试硬盘读写速度:
  • /dev/null:是一个伪设备,相当于回收站,of到该设备不会产生IO
  • /dev/zero:是一个伪设备,它只产生空字符流,对它不会产生IO
  • 测试磁盘写能力:time dd if=/dev/zero of=test.dbf bs=8k count=300000
  • 测试磁盘读能力:time dd if=/dev/sda1 of=/dev/null bs=8k
  • 测试同时读写能力:time dd if=/dev/sda1 of=test1.dbf bs=8k

磁盘备份恢复:
  • 将本地的/dev/hdx整盘备份到/dev/hdy :dd if=/dev/hdx of=/dev/hdy
  • 将/dev/hdx全盘数据备份到指定路径的image文件:dd if=/dev/hdx of=/path/to/image
  • 备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径:dd if=/dev/hdx | gzip >/path/to/image.gz
  • 将备份文件恢复到指定盘:dd if=/path/to/image of=/dev/hdx
  • 将压缩的备份文件恢复到指定盘 :gzip -dc /path/to/image.gz | dd of=/dev/hdx

参考:linux time 命令详解
分享到:
评论

相关推荐

    linux dd命令 源代码

    Linux中的`dd`命令是一个非常强大的工具,用于数据复制、转换和备份。它的工作原理是读取输入(源)文件或设备,然后按照指定的块大小写入到输出(目标)位置。这个命令在系统维护、磁盘克隆、创建映像文件等方面...

    linuxdd命令备份与恢复.rar

    linuxdd命令备份与恢复.rar

    linuxdd命令备份与恢复.pdf

    Linux dd命令备份与恢复 Linux dd命令是一个功能强大且灵活的命令行工具,经常用于备份和恢复磁盘、分区、文件等数据。下面将对dd命令的应用实例进行详细介绍。 1. 将本地的 /dev/hdb整盘备份到 /dev/hdd dd if=/...

    备份linux硬盘到另一台linux硬盘上.linux备份硬盘

    在Linux系统中,备份硬盘是一项重要的...总之,备份Linux硬盘至另一台Linux硬盘主要依赖于`dd`命令,需要谨慎操作并确保目标硬盘有足够的空间。同时,理解并掌握相关工具的使用方法和注意事项,是保障数据安全的关键。

    linux的dd命令克隆磁盘方法.docx

    ### Linux下的dd命令克隆磁盘方法详解 #### 概述 在Linux环境中,dd命令是一种非常强大的工具,常用于复制文件或者进行低级别的磁盘操作。本文将详细介绍如何使用dd命令来克隆磁盘,包括操作前的准备工作、注意事项...

    Linux dd命令中dsync与fdatasync的区别.docx

    Linux 系统中常常会用法 dd 指令来测试硬盘的写入速度,该指令会涉及到两个参数:dsync 与 fdatasync。本文将详细介绍这两个参数的区别。 dsync 参数: dsync 参数是 Linux dd 命令中的一个选项,该选项的作用是...

    Linux磁盘维护命令详解

    13. **dd**: 虽然主要用于数据复制,但dd也可以用来进行磁盘克隆或创建映像文件,这对于备份和恢复非常重要。 以上就是Linux系统中进行磁盘维护的一些核心命令。理解并熟练掌握这些工具,将有助于你在面对磁盘管理...

    车载常用linux命令+火车/高铁/公交车行业+车载linux系统测试常用命令,用于测试职位或运维技术支持职位

    本文将详细介绍车载Linux系统中常用的一些命令,这对于测试职位或运维技术支持人员来说至关重要。 1. `ls` 和 `ls -l`: `ls` 命令用于列出目录中的文件和子目录,而`ls -l`则提供更详细的信息,包括文件权限、所有...

    linux dd命令实用技巧总结

    Linux中的`dd`命令是一个非常强大的工具,常用于数据转换和复制。它的功能包括但不限于创建映像文件、格式化磁盘、数据迁移等。本文将深入探讨`dd`命令的基本用法及其各种实用技巧。 首先,`dd`命令的基本语法是: ...

    linux命令整理:磁盘管理

    `dd`命令虽然不直接与磁盘管理相关,但经常被用来复制和转换磁盘镜像,或者在创建新的分区或系统安装时进行数据传输。 最后,`parted`是一个更现代的分区管理工具,它提供了更多的交互式功能,包括创建、删除、调整...

    Linux中DD命令详解

    1. **磁盘备份与恢复**:通过`dd`命令可以完整地将一个磁盘的内容复制到另一个磁盘或者文件中,类似于DOS下的`diskcopy`命令。 2. **创建磁盘镜像**:用于制作磁盘的精确副本,便于备份或分析。 3. **文件系统的转换...

    dd命令烧写linux系统到sd卡

    ### dd命令烧写Linux系统到SD卡的知识点详解 #### 一、理解U-Boot如何到达SD卡的原理概述 1. **S3c2416架构下的启动过程** - **BL0 (Boot Loader Stage 0):** - **定义与功能:** BL0指的是S3c2416处理器内部ROM...

    LInux连接工具dd

    dd命令能够实现对文件或者设备的读取、转换以及写入操作,常用于磁盘克隆、格式化、创建镜像等任务,甚至可以用来在不同设备之间进行数据迁移。由于其功能强大且灵活,dd在系统维护、备份和恢复等方面有着重要的作用...

    Linux 系统测试硬盘性能shell 脚本

    在Linux系统中,测试硬盘性能是一项重要的任务,它可以帮助我们评估磁盘的读写速度、块访问效率以及寻道时间,这些因素直接影响到系统的整体运行速度和响应能力。本文将详细解析一个使用shell脚本来测试硬盘性能的...

    linux下测试磁盘io性能工具

    通过`hdparm -Tt /dev/sda`命令可以测试硬盘的缓存读写速度。 3. **dd**:这是一个非常基础但功能强大的数据复制工具。通过特定的参数,如`dd if=/dev/zero of=test bs=1M count=1024 conv=fdatasync`,可以用来...

    linux下的dd和cpio命令.pdf

    dd 命令直接调用硬盘驱动复制的,所以说速度上会很快。语法:dd [选项] if=输入文件(或设备名称)。of=输出文件(或设备名称)。ibs=bytes 一次读取bytes 字节,即读入缓冲区的字节数。skip=blocks 跳过读入缓冲区...

Global site tag (gtag.js) - Google Analytics