pv - Pipe Viewer - is a terminal-based
tool for monitoring the progress of data through a pipeline. It can be
inserted into any normal pipeline between two processes to give a visual
indication of how quickly data is passing through, how long it has taken,
how near to completion it is, and an estimate of how long it will be until
Additional support is available for multiple instances working in tandem, to given a visual indicator of relative throughput in a complex pipeline:
Source for all systems and RPMs for RPM-based i386 systems are available in the download area.
Comments, bug reports, and patches can be sent using the Contact Form.
|CentOS / RHEL:||Set up my YUM repository or use RepoForge, then do "|
|Debian / Ubuntu:||Run "|
|Slackware:||Use this SlackBuild script.|
|Cygwin:||Available as a package. (Christian Franke)|
|FreeBSD:||Listed on FreshPorts.|
|OpenBSD:||Listed under ports.|
|Solaris:||Download binary packages from sunfreeware.com or from OpenCSW.|
|AIX:||An RPM from Pawel Piatek is in the downloads section.|
|Mac HomeBrew:||Run "|
|IRIX Nekoware:||Available in the Nekoware "beta" repository. (Mark Round)|
|Syabas PopcornHour:||Someone posted this port in a forum.|
(29 Nov 2013) - Lee Yiu Chung writes:
I tried to compile pv under SmartOS (a fork from OpenSolaris), but I found a compiler error that
struct stat is redefined.
After some tracing I found that
/usr/include/sys/stat.h have BOTH "
struct stat" and "
struct stat64" defined, and the "
define stat64 stat" macro in
autoconf/header.in happily replacing
stat, thus causing the compiler error.
As a result I have to modify
autoconf/header.in so that the offending macro is disabled in Solaris platform. Below is the diff file:
--- autoconf/header.in.orig 2013-08-01 03:39:15.000000000 +0800 +++ autoconf/header.in 2013-11-29 20:07:21.697885164 +0800 @@ -70,6 +70,7 @@ # define stat64 stat # define fstat64 fstat # endif +# elif defined(__sun) && defined(__SVR4) # else # define stat64 stat # define fstat64 fstat
Author notes: Large file support is not implemented very portably at the moment. I will try to fix it so it does not do things like redefining
stat in future, so this should be fixed in a future version. In the meantime please try the above patch that has been kindly supplied.
--watchfdto look at block devices
--watchfd- suggested by Jacek Wielemborek and "fdwatch"
--buffer-percent, suggested by Kim Krecht
--last-written, suggested by Kim Krecht
--null- patch supplied by Zing Shishak
-lc128) - with help from Pawel Piatek
-cfixes - with help from Pawel Piatek
splice()not using stdin - patch from Zev Weiss
-R" on Cygwin
pv -h" when
configurerun with "
--skip-errorscommissioned by Jim Salter
--stop-at-sizeto stop after
--formatparameters to be sent with
--pidfileoption to save process ID to a file
--remoteto prevent accidental process kills
--formatoption (originally Vladimir Pal / Vladimir Ermakov)
--disable-spliceconfigure script option
splice()if the write buffer is not empty (Thomas Rachel)
splice()handling which could in some circumstances corrupt data. Use 1.3.1 or newer.
splice(2)where available (Debian bug #601683)
vars.mkto fix cross-compilation (paintitgray/PV#1291)