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
【Linux】Linux下檢視伺服器配置的命令
目錄 一、伺服器型號 二、作業系統 三、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
【linux】Linux下檢視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,