本文将向你介绍如何在Linux操作系统中实现查看dd命令写入进度的方法,即使用dd命令能显示图形化百分比的界面。基本上可以应用在任何一个Linux发行版上。
实现dd命令写入进度,命令行显示速度及百分比的界面
三种方法 在Linux系统中有一个非常强力的工具,那就是dd,它用来操作镜像,简直神器,唯一的不足是没有显示操作进度,不过也可以通过相关的更改或输入相关命令达到目的,下面介绍几个查看写入进度的方法。
一、使用pv命令显示图形化百分比的界面 sudo pv -tpreb /dev/sda | dd of=/dev/zero sudo pv -tpreb /dev/sda | dd of=/dev/zero bs=4096 conv=notrunc,noerror
注:需要显示图形化百分比的界面,那就使用pv配合dialog还可以显示进度条对话框: (sudo pv -n /dev/sda | dd of=/dev/zero) 2>&1 | dialog --gauge "dd process bar" 10 70 0
注:pv是一个显示其他命令执行进度的一个工具,它可以显示如下信息: 执行时间 进度的百分比 显示执行速度 总的数据传输量 剩余时间 安装pv的方法: 1、Ubuntu系统上 $ sudo apt-get install pv 2、CentOS系统上 $ sudo yum install pv 使用举例: 1、拷贝文件: $ pv opencv_git.tar > /tmp/temp.tar 2、统计行数: $ pv -p /etc/adduser.conf | wc 3、tar打包进度: $ tar -czf - opencv_git/ | (pv -p --timer --rate --bytes > backup.tgz)
二、status选项查看进度 如果你使用的是GNU版本的dd,并且coreutils版本高于8.24,那么可以使用status选项。例如: sudo dd if=/dev/sda of=/dev/zero status=progress
上面命令在Mac OS X上执行会出错,因为Mac OS X使用的是BSD版本的命令行,不是GUN。你可以在Mac OS X上安装gun coreutils,或者干脆使用上面介绍的pv命令。
三、使用pkill打印进度 重新打开一个Shell,然后执行如下命令即可每秒输出一次进度信息: watch -n 1 pkill -USR1 -x dd
附:也可以安装progress来显示Linux命令的执行进度 1、Linux安装progress progress依赖libncurses库显示进度条,安装依赖: CentOS系统上: yum install ncurses-devel Fedora系统上: dnf install ncurses-devel Ubuntu系统上: sudo apt-get install libncurses5-dev 下载源码,编译安装: $ git clone https://github.com/Xfennec/progress $ cd progress $ make $ sudo make install 2、progress的使用 查看支持的命令: $ progress No command currently running: cp, mv, dd, tar, cat, rsync, grep, fgrep, egrep, cut, sort, md5sum, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, adb, gzip, gunzip, bzip2, bunzip2, xz, unxz, lzma, unlzma, zcat, bzcat, lzcat, or wrong permissions. 首先执行要监控的命令,然后打开另一个终端,运行: $ progress # $ progress -w progress首先搜索/proc,找到要监控的命令,然后搜索fd和fdinfo目录,找到打开的文件,计算执行进度。 -m选项: $ tar czf test.tar.gz /home/snail/ | progress -m $!
监控所有即将要执行的命令: $ watch progress -q 查看帮助: $ man progress
结语 上面三种方法及使用progress命令都可以让dd命令显示写入进度,你可以选择其中一种方法操作即可。
相关主题 |