如何查看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