使用 pv 命令监控 linux 命令的执行进度
?
如果你是一個 linux 系統(tǒng)管理員,那么毫無疑問你必須花費大量的工作時間在命令行上:安裝和卸載軟件,監(jiān)視系統(tǒng)狀態(tài),復制、移動、刪除文件,查錯,等等。很多時候都是你輸入一個命令,然后等待很長時間直到執(zhí)行完成。也有的時候你執(zhí)行的命令掛起了,而你只能猜測命令執(zhí)行的實際情況。
通常 linux 命令不提供和進度相關(guān)的信息,而這些信息特別重要,尤其當你只有有限的時間時。然而這并不意味著你是無助的——現(xiàn)在有一個命令,pv,它會顯示當前在命令行執(zhí)行的命令的進度信息。在本文我們會討論它并用幾個簡單的例子說明其特性。
PV 命令
PV?由Andrew Wood 開發(fā),是 Pipe Viewer 的簡稱,意思是通過管道顯示數(shù)據(jù)處理進度的信息。這些信息包括已經(jīng)耗費的時間,完成的百分比(通過進度條顯示),當前的速度,全部傳輸?shù)臄?shù)據(jù),以及估計剩余的時間。
"要使用 PV,需要配合合適的選項,把它放置在兩個進程之間的管道。命令的標準輸入將會通過標準輸出傳進來的,而進度會被輸出到標準錯誤輸出。”
上述解釋來自該命令的幫助頁。
下載和安裝
Debian 系的操作系統(tǒng),如 Ubuntu,可以簡單的使用下面的命令安裝 PV:
如果你使用了其他發(fā)行版本,你可以使用各自的包管理軟件在你的系統(tǒng)上安裝 PV。一旦 PV 安裝好了你就可以在各種場合使用它(詳見下文)。需要注意的是下面所有例子都使用的是 pv 1.2.0。
特性和用法
我們(在 linux 上使用命令行的用戶)的大多數(shù)使用場景都會用到的命令是從一個 USB 驅(qū)動器拷貝電影文件到你的電腦。如果你使用 cp 來完成上面的任務,你會什么情況都不清楚,直到整個復制過程結(jié)束或者出錯。
然而pv 命令在這種情景下很有幫助。比如:
輸出如下:
所以,如你所見,這個命令顯示了很多和操作有關(guān)的有用信息,包括已經(jīng)傳輸了的數(shù)據(jù)量,花費的時間,傳輸速率,進度條,進度的百分比,以及剩余的時間。
pv?命令提供了多種顯示選項開關(guān)。比如,你可以使用-p?來顯示百分比,-t?來顯示時間,-r?表示傳輸速率,-e?代表eta(LCTT 譯注:估計剩余的時間)。好事是你不必記住某一個選項,因為默認這幾個選項都是啟用的。但是,如果你只要其中某一個信息,那么可以通過控制這幾個選項來完成任務。
這里還有一個-n?選項來允許 pv 命令顯示整數(shù)百分比,在標準錯誤輸出上每行顯示一個數(shù)字,用來替代通常的可視進度條。下面是一個例子:
這個特殊的選項非常合適某些情境下的需求,如你想把用管道把輸出傳給dialog?命令。
接下來還有一個命令行選項,-L?可以讓你修改 pv 命令的傳輸速率。舉個例子,使用 -L 選項來限制傳輸速率為2MB/s。
如上圖所見,數(shù)據(jù)傳輸速度按照我們的要求被限制了。
另一個pv 可以幫上忙的情景是壓縮文件。這里有一個例子可以向你解釋如何與壓縮軟件Gzip 一起工作。
結(jié)論
如上所述,pv 是一個非常有用的小工具,它可以在命令沒有按照預期執(zhí)行的情況下幫你節(jié)省你寶貴的時間。而且這些顯示的信息還可以用在 shell 腳本里。我強烈的推薦你使用這個命令,它值得你一試。
?
?
?
?
?
?
?
?
如果您愿意花幾塊錢請我喝杯茶的話,可以用手機掃描下方的二維碼,通過 支付寶 捐贈。我會努力寫出更好的文章。?
(捐贈不顯示捐贈者的個人信息,如需要,請注明您的聯(lián)系方式)?
Thank you for your kindly donation!
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/qiaoyanlin/p/6835163.html
總結(jié)
以上是生活随笔為你收集整理的使用 pv 命令监控 linux 命令的执行进度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Deming管理系列(2)——怎样开发度
- 下一篇: Winform应用程序实现通用遮罩层二