linux小记:查看dd进度
来源:互联网 发布:自动校时软件 编辑:程序博客网 时间:2024/05/04 08:38
经常使用dd
命令制作linux系统盘,相当方便迅速。但是用了这么久,突然就想,要是能够知道dd
现在的进度该多好,于是查了查,果然找到了。
刻盘的时候,我们先在一个shell中使用dd
,比如我们把Arch Linux的镜像刻到U盘/dev/sdc
中:
lgl@pArch ~/Downloads $ sudo dd if=archlinux-2016.04.01-dual.iso of=/dev/sdc
此时,在另一个shell中,我们输入:
lgl@pArch ~ $ sudo watch -n 5 pkill -USR1 ^dd$
或者:
lgl@pArch ~ $ sudo watch -n 5 pkill -USR1 -x dd
然后,当前终端会显示:
Every 5.0s: pkill -USR1 -x dd
此时,使用dd命令的终端会显示进度:
lgl@pArch ~/Downloads $ sudo dd if=archlinux-2016.04.01-dual.iso of=/dev/sdc[sudo] lgl 的密码:记录了234881+0 的读入记录了234881+0 的写出120259072 bytes (120 MB, 115 MiB) copied, 21.7691 s, 5.5 MB/s记录了286353+0 的读入记录了286353+0 的写出146612736 bytes (147 MB, 140 MiB) copied, 26.7881 s, 5.5 MB/s记录了338249+0 的读入记录了338249+0 的写出173183488 bytes (173 MB, 165 MiB) copied, 31.8169 s, 5.4 MB/s……
直到结束。
解释:
watch - execute a program periodically, showing output fullscreen
watch
负责周期性执行一个程序,使用-n
可以指定执行的时间间隔。-d
则会高亮出这次执行和上次执行的结果变化了的地方。所以watch -n 5 pkill -USR1 ^dd$
就是每五秒执行一次pkill -USR1 ^dd$
。
pgrep, pkill - look up or signal processes based on name and other attributes
pkill
是根据名称或其他属性来查询进程或给进程发信号的。
所以pkill -USR1 ^dd$
就是给dd
进程发送信号USR1,USR1这个信号在man dd
里有解释:
Sending a USR1 signal to a running ‘dd’ process makes it print I/O statistics to standard error and then resume copying.
也就是说只要给dd
发送USR1信号,它就会在标准错误输出中输出I/O数据,并继续复制。这样的话就实现了当前进度的输出。
命令中最后的^dd$
自然是筛选名称中仅含有dd
的进程,否则,所有名称中包含dd
字段的进程都会被选中。我们做个实验:
lgl@pArch ~ $ pkill -USR1 dd pkill: killing pid 2 failed: 不允许的操作pkill: killing pid 43 failed: 不允许的操作pkill: killing pid 282 failed: 不允许的操作pkill: killing pid 548 failed: 不允许的操作pkill: killing pid 2475 failed: 不允许的操作lgl@pArch ~ $ ps -A | grep dd 2 ? 00:00:00 kthreadd 43 ? 00:00:00 ipv6_addrconf 282 ? 00:00:00 sddm 548 ? 00:00:00 sddm-helper 2475 pts/2 00:00:04 dd 2488 ? 00:00:00 ksysguardd
由上面可以看到,pkill
果然是向所有名称中包含dd
的进程都发送信号了。
另外,除了使用正则的表示方式之外,我们还可以使用-x
来指定进程名:
-x, –exact
Only match processes whose names (or command line if -f is specified) exactly match the pattern.
所以,pkill -USR1 -x dd
的作用就是明确指定进程的名字就是dd。
所以说,我们通过pkill
(发信号)和watch
(周期性执行命令)的结合来实现了dd
进度的查看。
- linux小记:查看dd进度
- 查看dd拷贝进度
- 查看dd命令的执行进度
- 查看dd命令的执行进度
- linux下显示dd命令的进度
- Linux下显示dd命令的进度
- linux下显示dd命令的进度
- linux下显示dd命令的进度
- linux下显示dd命令的进度
- linux下显示dd命令的进度
- linux下显示dd命令的进度
- linux下显示dd命令的进度
- Linux使用dd命令备份大文件显示进度
- linux小记4 查看帮助
- dd命令小记
- dd命令显示当前进度
- Linux DD
- Linux DD
- Hive 和 Hadoop 关系
- 2016 UESTC Training for Data Structures I - 郭大侠与线上游戏 CDOJ 1339 pb_ds黑科技
- Android开发:Handler异步通信机制全面解析(包含Looper、Message Queue
- Bad version number in .class file的解决方法
- Vawio Sequence
- linux小记:查看dd进度
- IOS安全学记资料汇总
- Analog linked list quiz
- ReactNative 入门与探索
- 2016 UESTC Training for Data Structures J - 郭大侠与Rabi-Ribi CDOJ 1334 优先队列
- 【Linux C王者归来】【第十四章】【进程间的通信】
- 冒泡/选择/插入排序区别
- 博客第一天《喜欢劳动的人命运都不会差》
- 2016 UESTC Training for Data Structures K - 郭大侠与甲铁城 CDOJ 1342 离线树状数组