如何使用“pv”命令监视(复制/备份/压缩)数据的进度

Pv是一个基于终端的工具,允许您监视数据的进度,如处理/移动/备份通过管道发送的文件。

在进行备份,在Linux系统上处理/移动大型文件时,您可能需要监视正在进行的操作的进度。许多终端工具不具有在命令在管道中运行时查看进度信息的功能。 另请参阅提前Copy命令显示进度条而在Linux中复制文件
在Linux中显示复制/备份/ tar文件进度条

在Linux中显示复制/备份/ tar文件进度条

在这篇文章中,我们将看看称为PV的一个重要的Linux / Unix命令。

推荐阅读: Progress - 一个小工具来监控(cp,mv,dd,tar等)的命令进度

Pv是一个基于终端的工具,它允许您监视正在通过管道发送数据的进度。 当使用PV的命令,它给你以下信息的可视化显示:
  1. 已过的时间。
  2. 完成的百分比,包括进度条。
  3. 显示当前吞吐率。
  4. 传输的总数据。
  5. 和ETA(估计时间)。

如何在Linux中安装pv命令?

默认情况下,在大多数Linux发行版上不安装此命令,因此您可以按照以下步骤进行安装。

在Fedora,CentOS和RHEL

首先,你需要打开EPEL资源库 ,然后运行下面的命令。
# yum install pv
# dnf install pv            [On Fedora 22+ versions]
示例输出
Dependencies Resolved
=================================================================================
Package       Arch              Version                   Repository       Size
=================================================================================
Installing:
pv            x86_64            1.4.6-1.el7               epel             47 k
Transaction Summary
=================================================================================
Install  1 Package
Total download size: 47 k
Installed size: 93 k
Is this ok [y/d/N]: y
Downloading packages:
pv-1.4.6-1.el7.x86_64.rpm                                 |  47 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : pv-1.4.6-1.el7.x86_64                                         1/1 
Verifying  : pv-1.4.6-1.el7.x86_64                                         1/1 
Installed:
pv.x86_64 0:1.4.6-1.el7                                                        
Complete!

在Debian,Ubuntu和Linux Mint

# apt-get install pv
示例输出
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
pv
0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.
Need to get 33.7 kB of archives.
After this operation, 160 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe pv amd64 1.2.0-1 [33.7 kB]
Fetched 33.7 kB in 0s (48.9 kB/s)
Selecting previously unselected package pv.
(Reading database ... 216340 files and directories currently installed.)
Preparing to unpack .../archives/pv_1.2.0-1_amd64.deb ...
Unpacking pv (1.2.0-1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up pv (1.2.0-1) ...

在Gentoo Linux

使用emerge软件包管理器安装pv命令,如图所示。

# emerge --ask sys-apps/pv

在FreeBSD Linux上

您可以使用端口安装它,如下所示:
# cd /usr/ports/sysutils/pv/
# make install clean
或者添加二进制包如下:
# pkg_add -r pv

如何在Linux中使用pv命令?

pv大多与缺乏并监控一个正在进行的操作的进度的能力的其他程序使用。您可以使用它,将它放在两个进程之间的管道中,并提供相应的选项。 pv标准输入将传递到其标准输出和进展(输出)将在标准错误打印。 它有一个类似的行为作为cat命令在Linux中。 pv命令的语法如下:
pv file
pv options file
pv file > filename.out
pv options | command > filename.out
comand1 | pv | command2 
Pv使用的选项分为三类, 显示器开关输出改性剂常规选项
显示修饰符下的一些选项。
  1. 要打开显示栏,使用-p选项。
  2. 要查看所经过的时间,使用-timer选项。
  3. 要打开它试图猜测到底需要多长时间的操作完成之前,使用-ETA选项ETA计时器。该猜测基于先前的传输速率和总数据大小。
  4. 要打开一个速率计数器使用-rate选项。
  5. 以显示到目前为止传输的数据的总量,可以使用-bytes选项。
  6. 为了显示进度通知整数百分比,而不是视觉指示的,使用-n选项。 这可以通过使用PV对话框时命令可显示一个对话框,进度良好。
输出修饰符下的一些选项。
  1. 等到第一个字节显示进度信息之前,转让,使用-wait选项。
  2. 假设要传送的数据的总量是SIZE字节计算百分比和ETA时,可使用-size SIZE选项。
  3. 要更新之间指定秒内,使用-interval秒选项。
  4. 使用-force选项强制操作。此选项强制pv在标准错误不是终端时显示视觉效果。
  5. 常规选项-help显示使用信息,-version显示版本信息。

对示例使用pv命令

1.当包括任何选项, pv命令默认-p,-t,-e,-r-b选项运行。 例如,要复制opensuse.vdi文件/tmp/opensuse.vdi,运行这个命令并观看截屏进度条。
# pv opensuse.vdi > /tmp/opensuse.vdi
复制文件显示进度条 2.要在你的/ var一个zip文件/ log / syslog的文件,运行以下命令。
# pv /var/log/syslog | zip > syslog.zip
Zip文件显示进度栏 3.要算行,字和在/ etc字节数/ hosts文件,而只显示进度条,下面运行此命令。
# pv -p /etc/hosts | wc
Linux中的计数行,字和字节 4.进行监控创建备份文件的进度tar实用程序
# tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)
创建tar备份:显示进度条 5.使用pv对话基于终端的工具一起按如下方式创建一个对话框进度条。
# tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
创建对话框进度框

创建对话框进度框

概要

这是一个很好的基于终端的工具,你可以使用不具备的能力工具使用,来监控操作,如应对/移动/备份文件,以获得更多选项查看PV的进度。 我希望你觉得这篇文章有帮助,你可以发表评论,如果你有任何想法添加关于使用pv命令。如果你在使用它时遇到任何错误,你也可以留下评论。