天天看點

如何使用“pv”指令監控(複制/備份/壓縮)資料的進度

概述

在 Linux 系統上進行備份和複制/移動大檔案時,您可能希望監視正在進行的進度。許多終端工具沒有允許您在管道中運作指令時檢視進度資訊的功能。在本文中,我們将了解一個重要的 Linux/Unix 指令,稱為pv – Pipe Viewer,可以幫你解決問題。

Pv是一種基于終端的工具,可讓您監控通過管道發送的資料的進度。使用pv指令時,它可以直覺地顯示以下資訊:

  • 已經過去的時間。
  • 完成百分比包括一個進度條。
  • 顯示目前吞吐率。
  • 傳輸的總資料。
  • 和 ETA(預計時間)。

如何在 Linux 中安裝 pv 指令?

大多數 Linux 發行版預設不安裝pv指令,是以您可以按照以下步驟安裝它。

首先,您需要打開EPEL 存儲庫,然後運作以下yum或dnf指令進行安裝。

# yum install pv
OR
# dnf install pv            

在其他 Linux 發行版上安裝 pv

$ sudo emerge -a pv [Gentoo Linux] 
$ sudo apk add pv [Alpine Linux] 
$ sudo pacman -S pv [Arch Linux] 
$ sudo zypper install pv [OpenSUSE]              

如何在Linux中使用pv指令?

pv主要與其他無法監控正在進行的操作進度的程式一起使用。您可以使用它,将它放在兩個程序之間的管道中,并提供适當的選項。pv的标準輸入将傳遞到它的标準輸出。它與 Linux 中的cat 指令具有相似的行為。

pv指令的文法如下:

$ pv file
$ pv options file
$ pv file > filename.out
$ pv options | command > filename.out
$ comand1 | pv | command2            

顯示修飾符下選項

  • 要打開顯示欄,請使用-p選項。
  • 要檢視經過的時間,請使用--timer選項。
  • 要打開 ETA 計時器,它會嘗試猜測在完成操作之前需要多長時間,請使用--eta選項。猜測是基于以前的傳輸速率和總資料大小。
  • 要打開速率計數器,請使用--rate選項。
  • 要顯示到目前為止傳輸的資料總量,請使用--bytes選項。
  • 要顯示整數百分比的進度資訊而不是視覺訓示,請使用-n選項。當将pv與 dialog 指令一起使用以在對話框中顯示進度時,這可能很好

輸出修飾符下選項

  • 要在顯示進度資訊之前等待第一個位元組傳輸完畢,請使用該--wait選項。
  • 要在計算百分比和 ETA 時假設要傳輸的資料總量為SIZE--size SIZE位元組,請使用選項。
  • 要指定更新之間的秒數,請使用該--interval SECONDS選項。
  • 使用--force選項強制操作。當标準錯誤不是終端時,此選項強制 pv 顯示視覺效果。
  • 一般選項是--help顯示使用資訊,-version顯示版本資訊。

Linux 中使用 pv 指令示例

1、檔案複制

例如,要将opensuse.vdi檔案複制到/tmp/opensuse.vdi

# pv opensuse.vdi > /tmp/opensuse.vdi           

2、制作zip檔案

# pv /var/log/syslog | zip > syslog.zip           
如何使用“pv”指令監控(複制/備份/壓縮)資料的進度

3、要在僅顯示進度條的同時統計/etc/hosts檔案中的行數、字數和位元組數,請運作以下指令。

# pv -p /etc/hosts | wc           
如何使用“pv”指令監控(複制/備份/壓縮)資料的進度

4、使用tar 實用程式監控建立備份檔案的進度

# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)           
如何使用“pv”指令監控(複制/備份/壓縮)資料的進度

5、使用dd指令将ISO檔案寫入U盤

# dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M           

6、使用pv和dialog終端工具一起建立對話進度條如下

# tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70           
如何使用“pv”指令監控(複制/備份/壓縮)資料的進度

小結

這是一個很好的基于終端的工具,您可以将其與不具備此功能的工具一起使用,以監視處理/移動/備份檔案等操作的進度。喜歡的朋友,趕緊試試吧!

繼續閱讀