如何查看dd命令的拷贝进度

发布时间:2020-11-07编辑:脚本学堂
linux中的DD命令可以很方便的作二进制拷贝,比如可以做硬盘克隆。
一般使用方式如下: dd if=/src/device/name of=/dst/device/name

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

您可能感兴趣的文章:
Linux下dd命令生成指定大小的虚拟块设备文件
linux下dd命令备份磁盘的节点(主引导记录)恢复数据
linux中dd命令的用法详解
linux中dd命令使用详解
使用dd命令克隆磁盘的方法介绍
linux中dd命令详解(清除硬盘数据)
dd命令中seek和skip的用法
如何解决dd命令输出结果无法重定向到文件的问题