如何监视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
  • 阅读 ( 340 )
  • 分类:互联网

你可能感兴趣的文章

如何在带屏幕的linux终端上进行多任务处理

... 如何安装屏幕 ...

  • 发布于 2021-03-21 22:09
  • 阅读 ( 195 )

使用rsync自动将文件备份到远程服务器

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

  • 发布于 2021-03-28 09:36
  • 阅读 ( 230 )

如何使用cockpit web界面管理linux服务器

...机。它是独立的,设置简单,使用方便。我们将向您展示如何开始。 管理多个linux服务器 如果您要监视多台Linux计算机或服务器,您将面临一个挑战。这是特别真实的,如果其中一些是运行无头系统没有显示器连接。例如,您...

  • 发布于 2021-04-01 00:16
  • 阅读 ( 297 )

如何使用linux的screen命令

...窗口推到后台(称为“分离”)。当你想看到你的进程是如何进行的,你可以把窗口拉到前台(“重新连接”)并再次使用它。这对于您不希望通过关闭终端窗口意外终止的长进程来说非常有用。 一旦运行了屏幕会话,就可以...

  • 发布于 2021-04-02 11:06
  • 阅读 ( 176 )

如何在linux上使用snap包

...盒中。 如果它们不是以通常的方式安装的,那么它们是如何处理的呢?嗯,单个包文件被下载、解压缩,并作为一个SquashFSvirtual文件系统装载。然后将它作为一个虚拟环境呈现给您。所有这些都发生在幕后。你所知道的只是你...

  • 发布于 2021-04-02 12:19
  • 阅读 ( 313 )

如何使用curl从linux命令行下载文件

...个文件。每一个都有它在远程服务器上的名字。 相关:如何在Linux上使用xargs命令 从ftp服务器下载文件 将curl与文件传输协议(FTP)服务器结合使用很容易,即使您必须使用用户名和密码进行身份验证。要使用curl传递用户名和...

  • 发布于 2021-04-02 22:46
  • 阅读 ( 197 )

如何在linux上使用chroot命令

...法是安装足够的操作系统,以完成所需的任务。通过查看如何使用chroot环境来回答“what is required”问题。 一些常见用途是: 软件开发和产品验证。开发人员编写软件,产品验证团队(PV)对其进行测试。有时PV发现的问题无法...

  • 发布于 2021-04-03 03:19
  • 阅读 ( 197 )

如何向linux shell脚本添加gui

...只有一个按钮。 “进度”对话框窗口 您可以使用zenity progress对话框窗口来显示一个进度条,该进度条指示脚本的完成时间。 进度条将根据从脚本传入的值进行高级处理。要演示该原理,请使用以下命令: (for i in $(seq 0 10 100); d...

  • 发布于 2021-04-03 07:01
  • 阅读 ( 293 )

如何备份linux系统

...少量数据与文件总大小之间的比率。 使用进度选项 P(progress)选项使rsync在复制每个文件后生成一个小的进度报告。 rsync -raP /home/dave/Documents/ /media/dave/SILVERXHD/backups/ 提供的信息可以在每个复制的文件之间看到。 提供的信息...

  • 发布于 2021-04-03 09:19
  • 阅读 ( 202 )

linux下如何将iso文件刻录到usb驱动器

...任何事情。 更新:在最近的版本中,dd现在有一个status=progress选项,它每秒提供一次进程更新。例如,您可以运行此命令来查看状态: sudo dd bs=4M if=Downloads/ubuntu-19.04-desktop-amd64.iso of=/dev/sdb conv=fdatasync status=progress 创建可引导USB驱...

  • 发布于 2021-04-03 14:14
  • 阅读 ( 311 )

相关推荐