linux命令笔记之dd
来源:互联网 发布:股票k线数据如何获得? 编辑:程序博客网 时间:2024/04/30 05:34
创建一个100M的空文件
dd if=/dev/zero of=hello.txt bs=100M count=1
首先要了解两个特殊的设备:
/dev/null:回收站、无底洞
/dev/zero:产生字符
Ø测试磁盘写能力
time dd if=/dev/zero of=/test.dbf bs=8k count=300000
因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。
Ø测试磁盘读能力
time dd if=/dev/sdb1 of=/dev/null bs=8k
因为/dev/sdb1是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb1上,也相当于测试磁盘的读能力。
Ø测试同时读写能力
time dd if=/dev/sdb1 of=/test1.dbf bs=8k
这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb1是读,对/test1.dbf是写),假设他们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。
备份
将本地的/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
利用netcat远程备份
在源主机上执行此命令备份/dev/hda:dd if=/dev/hda bs=16065b | netcat < targethost-IP >
1234在目的主机上执行此命令来接收数据并写入/dev/hdc:netcat -l -p 1234 | dd of=/dev/hdc
bs=16065b
以下两条指令是目的主机指令的变化分别采用bzip2 gzip对数据进行压缩,并将备份文件保存在当
前目录 :
netcat -l -p 1234 | bzip2 > partition.img
netcat -l -p 1234 | gzip > partition.img
备份MBR
备份:
备份磁盘开始的512Byte大小的MBR信息到指定文件:dd if=/dev/hdx of=/path/to/image
count=1 bs=512
恢复:
将备份的MBR信息写到磁盘开始部分:dd if=/path/to/image of=/dev/hdx
备份软盘
将软驱数据备份到当前目录的disk.img文件:dd if=/dev/fd0 of=disk.img count=1 bs=1440k
拷贝内存资料到硬盘
将内存里的数据拷贝到root目录下的mem.bin文件:dd if=/dev/mem of=/root/mem.bin
bs=1024
从光盘拷贝iso镜像
拷贝光盘数据到root文件夹下,并保存为cd.iso文件:dd if=/dev/cdrom of=/root/cd.iso
增加Swap分区文件大小
创建一个足够大的文件(此处为256M):dd if=/dev/zero of=/swapfile bs=1024 count=262144
把这个文件变成swap文件:mkswap /swapfile
启用这个swap文件:swapon /swapfile
在每次开机的时候自动加载swap文件, 需要在 /etc/fstab 文件中增加一行:/swapfile swap
swap defaults 0 0
销毁磁盘数据
利用随机的数据填充硬盘:dd if=/dev/urandom of=/dev/hda1
在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作
无法执行。
磁盘管理
得到最恰当的block size
通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小:
dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.filedd 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
测试硬盘读写速度
通过两个命令输出的执行时间,可以计算出测试硬盘的读/写速度:
dd if=/root/1Gb.file bs=64k | dd of=/dev/null
hdd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
修复硬盘
当硬盘较长时间(比如一两年年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到
这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致
硬盘报废。下面的命令有可能使这些数据起死回生。且这个过程是安全,高效的。
dd if=/dev/sda of=/dev/sda
dd工具使用
dd重要参数
参数
含义
if
输入设备或者文件
of
输出设备或文件
bs
dd缓冲区。设定dd时一次io拷贝多少数据,它与输入文件和输出文件的block size都没有直接联系。
一般来说,bs越大,拷贝速度越快
skip
设定dd时从输入文件中跳过多少个dd缓冲区开始拷贝数据。一般在裸设备有offset时使用
seek
设定dd时从输出文件中跳过多少个dd缓冲区开始写入数据。一般在裸设备有offset时使用
count
设置dd的io数量。如果省略了count,表示完全拷贝输入文件到输出文件上
dd参数适用范围
备份源
备份目的地
适用参数
裸设备
裸设备
if of bs skip seek count
裸设备
文件系统
if of bs skip count
文件系统
裸设备
if of bs seek
文件系统
文件系统
if of bs
dd拷贝oracle数据文件需要考虑的因素
因素
含义
block size
dd一次io的buffer大小
offset
只适用于裸设备,有些操作系统在裸设备上保留一定的空间给内部使用,拷贝时要跳过这部分内容
block 0
每一个oracle数据文件的头都包含一个与数据文件所在表空间的blocksize的相等的block
这个block是不计算入oracle数据文件的bytes的,但在操作系统中,它是会占用空间的。
- linux命令笔记之dd
- linux之dd命令
- linux之dd命令
- linux之dd命令
- linux之dd命令
- Linux学习笔记之备份命令dd 及简单应用
- 小白学Linux之dd命令
- [转]linux之dd命令
- Linux基础之dd命令
- Linux之dd命令详解
- 图解Linux命令之--dd命令
- linux常见基本命令之十八dd
- linux磁盘管理命令之dd命令讲解
- linux dd命令
- Linux命令学习 DD
- linux dd命令
- linux dd 命令使用
- Linux dd命令
- jq 点击LI其他LI隐藏[类似选项卡,但是不是所有隐藏而是部分隐藏]
- 轻松学习JavaScript二十八:DOM编程学习之事件处理函数
- 操作浮点数遇到输出nan的解决方法
- Ubuntu安装git flow
- redis启用持久化
- linux命令笔记之dd
- 《C++Primer 5e》学习笔记(3):表达式
- ubuntu---mysql操作初步
- 每天学习十分钟4之工作记录
- ORACLE PL/SQL编程-触发器
- Object_C 回顾 0.1.1 数据类型
- java.lang.IllegalStateException: Web app root system property already set to different value: 'webap
- Jquery-获取兄弟元素
- 利用vnet在wifi局域网中模拟一个能返回json的服务器