feisky

云计算、虚拟化与Linux技术笔记
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[转]查看dd的拷贝进度

Posted on 2012-10-09 14:09  feisky  阅读(993)  评论(0编辑  收藏  举报

如何查看dd的拷贝进度

linux中的DD命令可以很方便的作二进制拷贝,比如可以做硬盘克隆。
一般使用方式如下:

dd if=/src/device/name of=/dst/device/name

... 然后就等它完成,进程退出

但是当我们需要copy的东西很巨大的时候,这个过程是很痛苦的
很多人会查看iostat, 来估算大概需要多少时间完成, 这是很不直观的, 也不可靠

如果我们dd --help
会看到其实是有方法可以查看copy进度的, 帮助文件中的example如下:

$ dd if=/dev/zero of=/dev/null& pid=$!    后台运行dd测试,保存进程号到pid中


实际我们使用的时候可以新开一个终端,

ps -ef | grep dd

找到dd的PID, 然后发送USR1(用户自定义信号),查看copy进度

有些场合我们可能使用当前这个终端, 那么我们可以把当前运行的dd转到后台:ctrl+z, 这时候dd进程被stop了,使用bg %1让其在后台继续运行,并且编为1号,后面如果要它到前台运行,只要键入fg %1就可以了.

然后我们输入kill -USR1 PID, 这里的PID是前面用ps查看到的进程号
这时候你就能看到当前的copy信息了,以及平均copy速度

 

可以结合watch -n 1 kill -USR1 PID实时刷新copy进度

原文:http://hi.baidu.com/stone_ll/item/f4d012ff6021f214ff3582e7

无觅相关文章插件,快速提升流量