经常使用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进度,linux小记:查看dd进度相关推荐

  1. linux dd iso 进度,linux小记:查看dd进度

    经常使用dd命令制作linux系统盘,相当方便迅速.但是用了这么久,突然就想,要是能够知道dd现在的进度该多好,于是查了查,果然找到了. 刻盘的时候,我们先在一个shell中使用dd,比如我们把Arc ...

  2. linux怎么查看证书库,curl --resolve 查看证书情况

    通过curl  解析证书 [root@harbor ~]# curl --resolve 'www.abc.com:127.0.0.1' https://www.abc.com/ -vvv * Cou ...

  3. 高效管理 Linux 进程:如何后台执行程序、查看进程、终止任务

    目录 前言 一.nohup命令详解 1-1.nohup命令介绍 1-2.语法格式 1-2-1.基础语法介绍 1-2-2.执行脚本文件 1-2-3.执行python文件 1-2-4.拓展延申:在服务器上 ...

  4. linux磁盘分区,挂载,及查看

    1.磁盘的分区主要分为基本分区(primary partion)和扩充分区(extension partion)两种,基本分区和扩充分区的数目之和不能大于四个.且基本分区可以马上被使用但不能再分区.扩 ...

  5. 查看apache、linux、kernel、nginx等版本

    原文:查看apache.linux.kernel.nginx等版本 查看apache版本 /usr/sbin/apachectl -v httpd -v 安装目录,使用apachectl -v 查看m ...

  6. linux学习笔记(一):查看系统、硬件信息

    一.查看系统信息.Linux发行版本 [root@localhost ~]# uname -a[root@localhost ~]# cat /etc/issue 二.PCI.CPU.磁盘.内存 [r ...

  7. linux进程莫名其妙被kill,Linux进程突然被杀掉(OOM killer),查看系统日志

    Linux进程被杀掉(OOM killer),查看系统日志 基本概念: Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是 ...

  8. linux查看软件包信息,Linux查看系统信息的一些命令及查看已安装软件包的命令...

    Linux查看系统信息的一些命令及查看已安装软件包的命令 系统 # uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat ...

  9. 监控io性能, free命令, ps命令, 查看网络状态, linux下抓包

    2019独角兽企业重金招聘Python工程师标准>>> 监控io性能 free命令 ps命令 查看网络状态 linux下抓包 --- 监控io性能 查看磁盘 iostat 和sar属 ...

  10. Linux 中ifconfig和ip addr命令查看不到ip解决方法

    Linux 中ifconfig和ip addr命令查看不到ip解决方法 参考文章: (1)Linux 中ifconfig和ip addr命令查看不到ip解决方法 (2)https://www.cnbl ...

最新文章

  1. php4.3-5.x,4.3 案例之 ThinkPHP 5.0 集成方法
  2. 解决Git Revert操作后再次Merge代码被冲掉的问题
  3. android listview item 圆角,ListView圆角 实现方法(一)
  4. android服务之录音功能
  5. Spring5参考指南: SpEL
  6. c#中tcp协议服务器同时接收客户端的数据
  7. pythonista3安装stash_Pythonista下stash安装教程
  8. 数字前端工程师必备技能
  9. QImage QPixmap Mat区别
  10. 主键约束 mysql
  11. 你们知道内卷化最严重的地方是哪里吗?
  12. C#、TypeScript之父Anders Hejlsberg:“会用Excel就是程序员 ”
  13. 哪个中年IT男不是一边面对危机,一边咬牙硬抗【转】
  14. Unity工程中 .Meta 文件的来龙去脉
  15. 拓端tecdat|python爬虫进行Web抓取LDA主题语义数据分析报告
  16. 联想打印机7256显示更换墨盒_联想打印机M7605D墨粉更换后还在提示更换墨粉盒...
  17. 兖州计算机老师,兖州最美教师 | 风采展示(二)
  18. 玩平衡车系列——编码器使用教程与测速原理
  19. 听别人的故事探索属于自己的方法
  20. 关于IE浏览器加载图片报206错误的一个解决方法

热门文章

  1. python炒股难度_诺贝尔奖得主教你如何分配炒股仓位 | python量化系列
  2. 即时通讯IM,是时代进步的逆流?看看JNPF怎么说
  3. 国外著名博客 Gizmodo 博主 Brian Lam 访谈录
  4. 基于Spire.Doc转PDF得方法,没有授权只能三页
  5. java英文时间格式转换yyyymmdd格式
  6. python三阶魔方_三阶魔方自动求解及动态可视化matlab代码
  7. 第十五届东北大学生编程大赛题解
  8. 高德地图大头针功能_iOS高德地图之自定义大头针and泡泡view
  9. python中%是什么意思_在python中%是什么意思
  10. gba模拟器ios_不越狱iOS设备安装GBA模拟器 GBA4iOS 方法