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进度。