如何監視linux命令的進度(使用pv和progress)

使用linuxpv和progress命令來跟蹤命令的進度,而不是盲目飛行。這些實用程式將為您提供通常沒有任何進度條的命令的進度條。你會看到一個估計的時間,直到完成,太。...

使用linuxpv和progress命令來跟蹤命令的進度,而不是盲目飛行。這些實用程式將為您提供通常沒有任何進度條的命令的進度條。你會看到一個估計的時間,直到完成,太。

如果你乘坐的是一架沒有影片螢幕的飛機長途飛行,要知道你的旅程有多遠並不容易。你知道你什麼時候起飛的。你知道這次飛行預計要花多長時間。但是你怎麼知道你是在按計劃,按時,還是遠遠落後於計劃呢?如果你不想看飛行中的電影,你通常可以切換你的影片螢幕來顯示一張地圖,上面有你的飛機的位置。您還可以獲得一些統計資訊,例如預期到達時間(ETA),這非常好。

從終端視窗啟動命令有時會讓人感覺像沒有影片螢幕的長途飛行。你沒有任何跡象表明一切是否順利,程序是否懸而未決,也沒有任何跡象表明它有多接近完成。閃爍的游標資訊量不大。

pv和progress命令提供一些統計資訊和一些視覺反饋。你可以看到這個過程是多麼接近完成。這意味著您將獲得執行程序的預計到達時間。與盯著一個游標相比,這是輕而易舉的事。

安裝pv

必須安裝pv。

要在Ubuntu上安裝pv,請使用以下命令:

sudo apt-get install pv

如何監視linux命令的進度(使用pv和progress)

要在Fedora上安裝pv,請使用以下命令:

sudo dnf install pv

如何監視linux命令的進度(使用pv和progress)

要在Manjaro上安裝pv,請使用以下命令:

sudo pacman -Syu pv

如何監視linux命令的進度(使用pv和progress)

使用pv

pv代表管道觀察器。管道必須在某個地方參與指揮。下面是一個例子,我們將一個ISO映像透過zip管道傳輸,以生成ISO的壓縮zip檔案。

為了將命令的速度降低到可以截圖的程度,本文使用的示例中的一些檔案儲存在一個名為SILVERXHD的舊的、緩慢的外部USB上。

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip

如何監視linux命令的進度(使用pv和progress)

pv提供給我們的資訊可以在顯示屏的底部看到。

如何監視linux命令的進度(使用pv和progress)

從左到右,顯示的資訊是:

  • 到目前為止傳輸的資料。
  • 時間過得太久了。
  • 資料傳輸速率(吞吐量)。
  • 進度條和完成百分比。
  • 完工前預計剩餘時間(ETA)。

用pv複製檔案

要複製具有pv輸出的檔案,請使用以下命令:

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso

如何監視linux命令的進度(使用pv和progress)

當檔案被複制時,我們會得到一個進度報告。

如何監視linux命令的進度(使用pv和progress)

使用pv複製多個檔案

要用pv複製多個檔案和資料夾,我們需要使用一些技巧。我們用tar來移動檔案。

tar -c help-files/ | pv | tar -x -C Documents/

如何監視linux命令的進度(使用pv和progress)

命令的tar-c help files/部分指示tar在help files資料夾中建立(-c)一個檔案存檔。這是透過pv管道傳輸的,這樣我們就可以得到進度的顯示。然後透過管道將其傳回tar,用於命令的最後一部分。在提取之前,將提取存檔檔案(-x),並將目錄更改為文件(-C)。

因此,幫助檔案中的檔案和資料夾將複製到Documents資料夾,並顯示進度。

如何監視linux命令的進度(使用pv和progress)

這次的輸出略有不同。

我們沒有預計到達時間。進度條現在顯示一個移動指示器。它表明這個過程是活動的,但它不像傳統的進度條那樣從左到右增長。pv僅限於顯示它可以從正在被管道傳輸的程序中提取的資訊。

使用pv和tar建立存檔

用pv和tar複製檔案不會給我們留下存檔檔案。tar建立了一種“虛擬”歸檔,直接反饋到tar中提取檔案。如果我們的目標是複製檔案,那就完成了。但是如果我們想建立一個存檔檔案呢?

我們仍然可以使用tar來建立一個歸檔檔案,並從pv獲得一個進度報告。tar使用的選項有-c(建立存檔)、-z(用gzip壓縮)和-f(存檔檔名)。

注意,我們使用-作為檔名,這會導致tar使用stdout,並將其輸出寫入終端視窗。我們看不到這個輸出,因為它是透過pv管道傳輸的。

歸檔檔案的實際名稱將是我們將pv的輸出匯入的檔名。在這種情況下,它是“幫助”-檔案.tgz”.

tar -czf - ./help-files/ | pv > help-files.tgz

如何監視linux命令的進度(使用pv和progress)

我們得到了與以前相同的進度指標,並且為我們建立了存檔檔案。

如何監視linux命令的進度(使用pv和progress)

相關:如何在Linux上使用tar命令壓縮和提取檔案

pv顯示選項

有許多選項可用於pv來更改其報告的詳細資訊。

如果使用這些選項中的任何一個,則所有其他選項都將關閉。因此,如果要使用其中三個顯示選項,則需要指定這三個選項。

使用不帶任何選項的pv與使用-pterb選項相同。

  • -p:顯示完成百分比。這是進度條和完成百分比。
  • -t:顯示經過的時間。
  • -e:顯示預計到達時間。
  • -r:顯示資料傳輸速率。
  • -b:顯示位元組數(到目前為止傳輸的資料)。
  • -n:以整數形式顯示百分比。這會將完成的百分比列印為整數,每次更新都在新行上。

讓我們重複上一個命令並將-p(完成百分比)選項傳遞給pv。

tar -czf - ./help-files/ | pv - p > help-files.tgz

如何監視linux命令的進度(使用pv和progress)

這將關閉所有其他顯示選項。pv只提供完成元素的百分比。

因為pv不能從tar得到完成百分比,所以進度條被一個移動的指示器所代替。沒有百分比數字。

如何監視linux命令的進度(使用pv和progress)

使用pv和wc

我們可以使用pv將一個文字檔案(或多個檔案)匯入wc。wc將計算回車、字元和單詞,pv將給我們一個進度報告。

在這裡,我們將幫助檔案目錄中的所有“.page”檔案匯入wc。

007Ys3FFgy1gp6tw44t7uj30hy03ejre

wc完成後,我們可以看到help files資料夾中所有“.page”檔案的回車(行)、字元和單詞計數。

如何監視linux命令的進度(使用pv和progress)

安裝進度命令

progress命令提供了與pv相同的有用資訊,但是它可以使用一組特定的Linux命令。

要在Ubuntu中安裝progress,請使用以下命令:

sudo apt-get install progress

如何監視linux命令的進度(使用pv和progress)

要在Fedora中安裝progress,請使用以下命令:

sudo dnf install progress

如何監視linux命令的進度(使用pv和progress)

要在Manjaro中安裝progress,請使用以下命令:

sudo pacman -Syu progress

如何監視linux命令的進度(使用pv和progress)

命令進度與

在終端視窗中鍵入progress,然後按Enter鍵,您將看到progress使用的命令列表。

progress

如何監視linux命令的進度(使用pv和progress)

對管道使用進度

我們可以使用兩種技術來監視命令的進度。首先是使用管道。

tar命令在progress可以監視的受支援命令列表中,所以讓我們使用tar。

我們將使用的選項是標準的-c(建立存檔)、-z(用gzip壓縮)和-f(檔名)選項。我們將為“幫助檔案”資料夾中的所有內容建立一個壓縮檔案,檔案將命名為“幫助.tgz”.

我們正在將其匯入程序,並使用-m(monitor)選項,以便在程序完成之前不斷報告程序。

tar -czf help.tgz ./help-files/ | progress -m

如何監視linux命令的進度(使用pv和progress)

終端視窗將顯示tar命令建立存檔時的進度。

如何監視linux命令的進度(使用pv和progress)

在處理每個檔案時,都會列出該檔案,其中包含以下資訊:

  • 程序ID。
  • 程序名稱。
  • 完成百分比。
  • 已處理的資料和檔案的總大小。
  • 資料速率(吞吐量)。
  • 預計剩餘時間(ETA)。

您可能會驚訝地看到第二個資料集出現。第一個資料集用於tar。第二個是gzip。tar呼叫gzip來執行壓縮。因為gzip在支援的命令列表中,所以會報告它的進度。

在連續監控模式下使用進度

透過使用-M(monitor)選項,可以在實時連續監視模式下使用進度。

在終端視窗中鍵入以下命令:

progress -M

如何監視linux命令的進度(使用pv和progress)

progress將報告沒有執行任何命令供其監視。但不會返回到命令列。程序將等待它可以監視的命令啟動。然後它會自動開始報告。

如何監視linux命令的進度(使用pv和progress)

在另一個終端視窗中,鍵入進度可以監視的命令列表中的命令。

我們要用貓。過快結束的命令不會隨著進度註冊,因此我們將列出一個很長的文字檔案的內容。

cat words.page

如何監視linux命令的進度(使用pv和progress)

在包含進度的終端視窗中,您將看到cat命令執行和接近完成時的統計資訊。

如何監視linux命令的進度(使用pv和progress)

當cat完成列出檔案時,檔案進度返回到等待狀態。

每次它可以報告的命令之一執行一個相當大的任務時,progress都會自動監視它並報告它。

真是太好了。

100%完成

不要去猜測一個長時間執行的命令是如何執行的,也不要用pv和progress來思考游標。

 

  • 發表於 2021-04-03 08:25
  • 閱讀 ( 53 )
  • 分類:網際網路

你可能感興趣的文章

如何在debian和ubuntu中使用apt並告別apt-get

Linux處於永久性的進化狀態。通常,這些更改是隱藏的,例如核心的幕後開發和其他底層程式碼。但是,偶爾,使用者必須調整到一種新的工作方式。 ...

  • 發佈於 2021-03-13 11:28
  • 閲讀 ( 53 )

5款減肥應用,讓你逐漸變瘦,保持身材

... 4offlife progress(web):私人進度圖片 ...

  • 發佈於 2021-03-19 14:50
  • 閲讀 ( 49 )

如何在帶螢幕的linux終端上進行多工處理

... 如何安裝螢幕 ...

  • 發佈於 2021-03-21 22:09
  • 閲讀 ( 41 )

使用rsync自動將檔案備份到遠端伺服器

... rsync -avz --progress ~/Documents/ backup_server:~/Documents ...

  • 發佈於 2021-03-28 09:36
  • 閲讀 ( 52 )

如何使用cockpit web介面管理linux伺服器

...機。它是獨立的,設定簡單,使用方便。我們將向您展示如何開始。 管理多個linux伺服器 如果您要監視多臺Linux計算機或伺服器,您將面臨一個挑戰。這是特別真實的,如果其中一些是執行無頭系統沒有顯示器連線。例如,您...

  • 發佈於 2021-04-01 00:16
  • 閲讀 ( 54 )

如何使用linux的screen命令

...視窗推到後臺(稱為“分離”)。當你想看到你的程序是如何進行的,你可以把視窗拉到前臺(“重新連線”)並再次使用它。這對於您不希望透過關閉終端視窗意外終止的長程序來說非常有用。 一旦運行了螢幕會話,就可以...

  • 發佈於 2021-04-02 11:06
  • 閲讀 ( 50 )

如何在linux上使用snap包

...盒中。 如果它們不是以通常的方式安裝的,那麼它們是如何處理的呢?嗯,單個包檔案被下載、解壓縮,並作為一個SquashFSvirtual檔案系統裝載。然後將它作為一個虛擬環境呈現給您。所有這些都發生在幕後。你所知道的只是你...

  • 發佈於 2021-04-02 12:19
  • 閲讀 ( 61 )

如何使用curl從linux命令列下載檔案

...個檔案。每一個都有它在遠端伺服器上的名字。 相關:如何在Linux上使用xargs命令 從ftp伺服器下載檔案 將curl與檔案傳輸協議(FTP)伺服器結合使用很容易,即使您必須使用使用者名稱和密碼進行身份驗證。要使用curl傳遞使用...

  • 發佈於 2021-04-02 22:46
  • 閲讀 ( 67 )

如何在linux上使用chroot命令

...法是安裝足夠的作業系統,以完成所需的任務。透過檢視如何使用chroot環境來回答“what is required”問題。 一些常見用途是: 軟體開發和產品驗證。開發人員編寫軟體,產品驗證團隊(PV)對其進行測試。有時PV發現的問題無法...

  • 發佈於 2021-04-03 03:19
  • 閲讀 ( 66 )

如何向linux shell指令碼新增gui

...有一個按鈕。 “進度”對話方塊視窗 您可以使用zenity progress對話方塊視窗來顯示一個進度條,該進度條指示指令碼的完成時間。 進度條將根據從指令碼傳入的值進行高階處理。要演示該原理,請使用以下命令: (for i in $(seq 0 1...

  • 發佈於 2021-04-03 07:01
  • 閲讀 ( 49 )

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦