1. 程式人生 > >Linux下檢視dd命令執行進度

Linux下檢視dd命令執行進度

轉載地址,同時也進行了一些補充。謝謝原作者。

經常使用dd命令製作linux系統盤,相當方便迅速。但是用了這麼久,突然就想,要是能夠知道dd現在的進度該多好,於是查了查,果然找到了。

刻盤的時候,我們先在一個shell中使用dd,比如我們把Arch Linux的映象刻到U盤/dev/sdc中:

[email protected] ~/Downloads $ sudo dd if=archlinux-2016.04.01-dual.iso of=/dev/sdc
  • 此時,在另一個shell中,我們輸入:
[email protected] ~ $ sudo watch -n 5 pkill -USR1 ^dd$
  • 或者:
[email protected] ~ $ sudo watch -n 5 pkill -USR1 -x dd
  • 然後,當前終端會顯示:
Every 5.0s: pkill -USR1 -x dd 
  • 此時,使用dd命令的終端會顯示進度,直到結束。
[email protected] ~/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命令在執行的時候接收到SIGUSR1訊號的輸出當前的讀寫進度,而pkill命令在這裡起的作用就是給dd程序傳送這個訊號)。這樣的話就實現了當前進度的輸出。 
命令中最後的^dd$自然是篩選名稱中僅含有dd的程序,否則,所有名稱中包含dd欄位的程序都會被選中。我們做個實驗:

[email protected] ~ $ 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: 不允許的操作

[email protected] ~ $ 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的程序傳送USR1訊號。

所以說,我們通過pkill(發訊號)和watch(週期性執行命令)的結合來實現了dd進度的檢視。

相關推薦

Linux檢視dd命令執行進度

轉載地址,同時也進行了一些補充。謝謝原作者。 經常使用dd命令製作linux系統盤,相當方便迅速。但是用了這麼久,突然就想,要是能夠知道dd現在的進度該多好,於是查了查,果然找到了。 刻盤的時候,我們先在一個shell中使用dd,比如我們把Arch Linux的映象刻到U

linux使用dd命令寫入鏡像文件到u盤

ubuntu watch 文件 user 終端 logs col 如果 /dev/ 1、使用 df -h ,查看一下當前各個磁盤 [email protected]/* */ ~/ $ df -h Filesystem Size Used Avai

Linux使用dd命令製作啟動盤

1.檢視掛載的U盤的裝置名稱,一般按照大概的容量或者拔插前的區別來看。此處U盤裝置名為sdd1 ╰─$ sudo fdisk -l 1 ↵ .

Linux dd命令使用詳解(摘錄)

一、dd命令的解釋 dd:用指定大小的塊拷貝一個檔案,並在拷貝的同時進行指定的轉換。 注意:指定數字的地方若以下列字元結尾,則乘以相應的數字:b=512;c=1;k=1024;w=2 引數註釋: 1. if=檔名:輸入檔名,預設為標準輸入。即指定原始檔。< if

Linux dd命令使用詳解(摘錄)【轉】

轉自:https://www.cnblogs.com/jikexianfeng/p/6103500.html 一、dd命令的解釋 dd:用指定大小的塊拷貝一個檔案,並在拷貝的同時進行指定的轉換。 注意:指定數字的地方若以下列字元結尾,則乘以相應的數字:b=512;c=1;k=1024;w=2 引數註釋

Linux使用dd命令向U盤中寫入ISO映象

檢視U盤的掛載路徑,如/dev/sdc之類 sudo fdisk -lh 假設U盤的分割槽為/dev/sdb,執行類似如下命令寫入ISO檔案 sudo dd if=/home/xxx/xxx.iso of=/dev/sdb bs=4M

linux利用 tail命令 實時檢視tomcat執行日誌

1、先切換到logs目錄比如:cd /opt/tomcat安裝路徑/logs 2、tail -f catalina.out 3、這樣執行時就可以實時檢視執行日誌了 如下: Ctrl+c 是退出tail命令。 順便講一下linux中tail命令 tail 命令從指定點

linux使用top命令檢視系統執行狀態和程序執行狀態

linux下top命令檢視系統執行狀態和程序執行狀態 在linux下可以通過top命令來查系統執行狀態和程序執行狀態,通過man檢視top手冊,top的解釋是display Linux tasks,以前看到過一個另外的解釋display top CPU proc

Linux檢視檔案和資料夾佔用記憶體大小、刪除日誌 命令

轉:https://www.cnblogs.com/lixuwu/p/5944062.html 閱讀目錄 1 Linux下檢視檔案和資料夾大小 2 刪除系統日誌等 3 實踐 場景:在sts中執行自動部署時候maven提示No space left on d

linux安裝oracle時執行runInstller命令時報錯

新開一個終端,用root使用者執行以下命令: 1

LinuxLinux檢視伺服器配置的命令

目錄 一、伺服器型號 二、作業系統 三、CPU 四、記憶體 五、硬碟 六、其他 一、伺服器型號 dmidecode|grep "System Information" -A9|egrep "Manufacturer|Product" 二

Linux檢視檔案內容的常見命令

檢視檔案內容的命令: cat 由第一行開始顯示內容,並將所有內容輸出 tac 從最後一行倒序顯示內容,並將所有內容輸出 more 根據視窗大小,一頁一頁的現實檔案內容 less 和more類似,但其優點可以往前翻頁,而且進行可以搜尋字元 head

Linux檢視隱藏檔案命令

一般的Linux下的隱藏目錄使用命令ls -l是查看不出來的,只能檢視到檔案及資料夾 檢視Linux下的隱藏檔案需要用到命令 ls -al 其他檢視檔案目錄命令: ls -l ll ls -l / 個人網站:http://xudailong.

Linux檢視檔案內容的幾種常用命令

【常用】 1,cat     由第一行開始顯示內容,並將所有內容輸出 cat的功能是將檔案從第一行開始連續的將內容輸出在螢幕上。但是cat並不常用,原因是當檔案大,行數比較多時,螢幕無法全部容下時,只能看到一部分內容。 cat語法:cat [-n]  檔

LINUX檢視CPU、記憶體使用率的命令

1.top 使用許可權:所有使用者 使用方式:top [-] [d delay] [q] [c] [S] [s] [i] [n] [b] 說明:即時顯示process的動態 d :改變顯示的更新速度,或是在交談式指令列( interactive command)按s

linuxLinux檢視CPU型號,記憶體大小,硬碟空間的命令(詳解)

1 檢視CPU 1.1 檢視CPU個數 # cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2 **uniq命令:刪除重複行;wc –l命令:統計行數** 1.2 檢視CPU核數 # cat /proc/c

Linux 檢視命令列歷史

簡介 Linux中,bash輸入的歷史記錄,會存在.bash_history(或者說root/bash_history)。  通過history檢視。  可以看到,不僅可以輸出正確的命令,還可以輸入錯誤的(如abc),而且輸出的是history之前所有的命令(incl

linux 檢視Tomcat的狀態,以及開啟停止服務命令

1.首先進入你的tomcat 的bin目錄下 cd /你的安裝目錄/tomcat/bin 檢視服務啟動情況 ps -ef|grep java 此條命令具體含義 ps:將某個程序顯示出來 -A  顯示所有程式。 -e  此引數的效果和指定"A"引數相同。 -f  顯

Linux的crontab定時執行任務命令詳解

   crontab命令常見於Unix和類Unix的作業系統之中,用於設定週期性被執行的指令。該命令從標準輸入裝置讀取指令,並將其存放於“crontab”檔案中,以供之後讀取和執行。該詞來源於希臘語 chronos(χρνο),原意是時間。通常,crontab儲存的指令被守護

Linux檢視某一個程式執行所佔用的記憶體【轉】

第一種方式 top -p 程序號 [[email protected] micro-service]$ top -p 20490 top - 16:50:32 up 6 days,  2:18,  1 user,  load average: 0.00,