davidpelfree / pipeviewer Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/pipeviewer
Automatically exported from code.google.com/p/pipeviewer
Introduction ************ This is the README for `pv' ("Pipe Viewer"), 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 completion. Documentation ************* A manual page is included in this distribution. See `man ./doc/quickref.1', or `man pv' after installation. Compilation *********** If you have downloaded `pv' from Subversion, first run "./generate.sh". To compile the package, type "sh ./configure", which should generate a Makefile for your system. You may then type "make" to build everything. Note that GNU `make' is required; this may be installed as `gmake' on some systems, so if typing "make" gives an error, try "gmake" instead. See the file `doc/INSTALL' for more about the `configure' script. Developers note that you can do "./configure --enable-debugging" to cause debugging support to be built in, and "--enable-profiling" builds in profiling support (see "man gprof"). Also note that doing "make index" will generate an HTML code index (using "ctags" and "cproto"); this index lists all files used, all functions defined, and all TODOs marked in the code. Developers also note that the /* RATS */ comments are used to tell the RATS tool that a potential trouble spot has been checked so it doesn't need to warn about it. (RATS: Rough Auditing Tool for Security - home page http://www.fortifysoftware.com/security-resources/rats.jsp) Author ****** This package is copyright (C) 2010 Andrew Wood, and is being distributed under the terms of the Artistic License 2.0. For more details, see the file `doc/COPYING'. You can contact me by email at [email protected] or by using the contact form on my web page at http://www.ivarch.com/. The `pv' home page is at: http://www.ivarch.com/programs/pv.shtml The latest version can always be found here. Credit is also due to: Kevin Coyner <[email protected]> - Debian package maintainer Jakub Hrozek <[email protected]> - Fedora package maintainer Cédric Delfosse <[email protected]> - previous Debian package maintainer Eduardo Aguiar <[email protected]> - provided Portuguese (Brazilian) translation Stéphane Lacasse <[email protected]> - provided French translation Marcos Kreinacke <[email protected]> - provided German translation Bartosz Feñski <[email protected]> <http://skawina.eu.org/> - provided Polish translation along with Krystian Zubel Joshua Jensen - reported RPM installation bug Boris Folgmann <http://www.folgmann.com/en/> - reported cursor handling bug Mathias Gumz - reported NLS bug Daniel Roethlisberger - submitted patch to use lockfiles for -c if terminal locking fails Adam Buchbinder - lots of help with a Cygwin port of -c Mark Tomich <http://metuchen.dyndns.org> - suggested -B option Gert Menke - reported bug when piping to dd with a large input buffer size Ville Herva <[email protected]> - informative bug report about rate limiting performance Elias Pipping - patch to compile properly on Darwin 9; potential NULL deref report Patrick Collison - similar patch for OS X Boris Lohner - reported problem that "-L" does not complain if given non-numeric value Sebastian Kayser - supplied testing for SIGPIPE, demonstrated internationalisation problem Laszlo Ersek <http://phptest11.atw.hu/> - reported shared memory leak on SIGINT with -c Phil Rutschman <http://bandgap.rsnsoft.com/> - provided a patch for fully restoring terminal state on exit Henry Precheur <http://henry.precheur.org/> - reporting and suggestions for --rate-limit bug when rate is under 10 E. Rosten <http://mi.eng.cam.ac.uk/~er258/> - supplied patch for block buffering in line mode Kjetil Torgrim Homme - reported compilation error with default CFLAGS on non-GCC compilers Alexandre de Verteuil - reported bug in OS X build and supplied test environment to fix in Martin Baum - supplied patch to return nonzero exit status if terminated by signal Sam Nelson <http://www.siliconfuture.net/> - supplied patch to fix trailing slash on DESTDIR Daniel Pape - reported Cygwin installation problem due to DESTDIR Philipp Beckers - ported to the Syabas PopcornHour A-100 series Henry Gebhard <[email protected]> - supplied patches to improve SI prefixes and add --average-rate Vladimir Kokarev, Alexander Leo - reported that exit status did not reflect file errors -----------------------------------------------------------------------------
What steps will reproduce the problem?
1. ./configure
2. make
3. (complain loudly)
What is the expected output? What do you see instead?
What version of the product are you using? On what operating system?
Trunk. OS X 10.4.
Please provide any additional information below.
This fixed my build problem. I came to pv from MacPorts, but wanted to fix it
with a patch
upstream.
Original issue reported on code.google.com by olle.jonsson
on 10 Mar 2008 at 9:11
Attachments:
See what happens if we fsync() and/or use O_SYNC, which would be useful when
writing to USB devices or other things that tend to hang for ages after we've
finished. (Original request submitted by an anonymous user)
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:35
It has been suggested that using splice() on Linux would boost performance
(Коренберг Марк / socketpair).
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:36
See email reports from Bob Friesenhahn.
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:30
Patch from Sami Liedes.
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:29
Attachments:
Provide an "-F" option to allow pv to be given a list of files to read from
the given file. Provide an additional option for that list to be
null-terminated instead of newline-terminated.
Original issue reported on code.google.com by [email protected]
on 19 Feb 2007 at 1:37
Statistics like average(mean), min/max throughput rate and standard
deviation would be useful to have.
Original issue reported on code.google.com by [email protected]
on 22 May 2009 at 1:06
I think this would be a very useful feature allowing to validate the data
integrity on the receiving end if e.g. data is just dumped into a file. E.g.
if I want to backup a partition of a drive, as is, running twice checksum first
and then piping through pv would be evil, and constructing evolved shell
commands like
$> cat ~/.emacs > >(md5sum - >| /tmp/1) | pv > /dev/null
71,2kB 0:00:00 [ 13MB/s] [ $> cat /tmp/1
e81dbdf1a7a273a60b789c55e8ebf65e -
$> md5sum .emacs
e81dbdf1a7a273a60b789c55e8ebf65e .emacs
would be ugly and error prone
What is the expected output?
upon exit print checksums of the "streamed" data, e.g.
MD5: e81dbdf1a7a273a60b789c55e8ebf65e
SHA: 0960cc9bdebeebd590c39cfc9b29f36530dc223e
What do you see instead?
nothing :-/
What version of the product are you using? On what operating system?
1.2.0-1 debian sid amd64
Please provide any additional information below.
I love beer
And thanks for the pv -- it is really nice ;)
Original issue reported on code.google.com by [email protected]
on 18 Feb 2012 at 2:50
Add -O to allow ordering of -pterb output, eg -bertp (Vladimir Pal)
(http://unixstuff.ru), idea by Vladimir Ermakov
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:32
If the rate is limited to less than 10 bytes per second with the default
interval, no data moves anywhere. See email report from Henry Precheur.
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:26
What steps will reproduce the problem?
1. try to cross-compile for uClinux. cross-compilation for other platforms may
fail as well - just can't test it right now.
2. compilation fails due to the host ld being invoked (instead of
bfin-uclinux-ld).
3. scratch your head while reading autoconf/make/vars.mk, line 33.
What is the expected output? What do you see instead?
Expected to see a cross-compiled version of pv, instead got a linking error due
to host ld trying to process cross-compiled object files.
What version of the product are you using? On what operating system?
Using version 1.2.0 on Linux Mint Debian Edition, though it really does not
matter in this case.
Please provide any additional information below.
The fix is very simple - just remove that line (with "LD = ld") from vars.mk,
re-run generate.sh, configure, make. Now the correct version of ld is invoked.
Got this solution from here: http://codereview.chromium.org/3907003
Original issue reported on code.google.com by [email protected]
on 22 Sep 2011 at 9:52
It's useful to use the terminal title line to report progress, so that "normal"
stderr (and stdout)
reporting can also be used. A simple patch is provided, which when given the
"-x" option writes
the required ansi escape codes around the progress output.
Original issue reported on code.google.com by [email protected]
on 31 Jul 2008 at 1:50
Attachments:
because de for sentence is missing $@
for POFILE ; do
...
done
must be
for POFILE in $@; do
...
done
to replicate delete src/nls/table.c and run make
Original issue reported on code.google.com by [email protected]
on 1 Nov 2010 at 2:48
Integrate attached patch from E. Rosten.
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:31
Attachments:
On OSes without compressed man pages, installation fails. See email report from
Bob Friesenhahn.
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:27
What steps will reproduce the problem?
1. Build pv 1.1.4 under OS X 10.4.11 (the patch from issue 5 is needed)
2. make test
What do you see instead?
010-dd: FAILED
make: *** [test] Error 1
If I uncomment the echo from the test, and remove the -q flag from pv, it
appears to not be providing enough data to dd:
010-dd: 62.5MB 0:00:00 [99.4MB/s]
[<=> ]
[100000000] [ 65503264]
FAILED
make: *** [test] Error 1
What version of the product are you using? On what operating system?
pv-1.1.4, OS X 10.4.11, GCC i686-apple-darwin8-gcc-4.0.1
Original issue reported on code.google.com by [email protected]
on 2 May 2009 at 6:08
What steps will reproduce the problem?
1. Lookup the PID of some process running on your system.
2. Run: "pv -R PID"
What is the expected output? What do you see instead?
I expect pv to print out an error that the designated PID is not an instance of
pv and then exit without sending a signal to that PID. Instead pv will send the
SIGUSR1 signal to the process regardless of what program it actually is.
What version of the product are you using? On what operating system?
1.1.4-1 on debian
Please provide any additional information below.
You could either check the output "basename /proc/PID/exe", or "ps -o comm=
PID". And verify that it is "pv" before sending the signal. I don't know which
approach is more portable.
Original issue reported on code.google.com by [email protected]
on 3 Oct 2011 at 7:41
What steps will reproduce the problem?
1. Open a terminal window with rxvt on Cygwin
2. tar c subdir/ | pv -pterW -s 99999999 -N 'Source' | bzip2 | pv -pterW -N
'Compressed' > tempo.tbz2
What is the expected output?
Like the demo pictures.
What do you see instead?
The lines overwrite each other as if they both do CR but don't move back
up. This does not only happen if it is at the bottom of the window. Adding
"-c" option results in "failed to lock terminal: Invalid argument"
What version of the product are you using? 1.1.0
On what operating system?
$ uname -a
CYGWIN_NT-5.1 brisingamen 1.5.24(0.156/4/2) 2007-01-31 10:57 i686 Cygwin
Original issue reported on code.google.com by [email protected]
on 29 Oct 2007 at 2:04
Currently, the cursor positioning code uses locking on the terminal, or a
lockfile when O_EXLOCK is unavailable, to manage concurrent access so that
the different instances of pv can all output to the same terminal.
Instead of using this method a semaphore or other shared memory type
solution should be used, since shared memory is already being used for
other aspects of the cursor positioning code anyway and it would be cleaner
than relying on file locks.
Original issue reported on code.google.com by [email protected]
on 19 Feb 2007 at 1:36
Just downloaded the cygwin and selected current (stable) version of packages,
but no matter how much I've searched, couldn't find on it the pv command.
Original issue reported on code.google.com by [email protected]
on 1 Jul 2012 at 3:44
I am checking block device backups with cmp, and using pv to watch progress.
cmp has a skip option that allows to checking a problem area again, but is hard
to combine with pv. For example, doing
dd ibs=1c skip=$SKIP if=$FILE1 |pv |cmp -i $SKIP $FILE2
works, but only with 1-byte blocks, and very slowly. With a `--skip` option,
things would work much better:
pv --skip=$SKIP $FILE1 |cmp -i $SKIP $FILE2
pv can skip efficiently with a seek, and know how much data is still left to
compute an ETA.
cmp also supports a --bytes option:
dd ibs=1c skip=$SKIP count=$BYTES if=$FILE1 |pv |cmp -i $SKIP --bytes $BYTES $FILE2
Which stops comparing after reading so many bytes. It doesn't really need to be
supported by pv, since cmp will close stdin when it has read enough. Adjusting
the size estimate with -s is enough:
pv --skip=$SKIP -s $BYTES $FILE1 |cmp -i $SKIP --bytes $BYTES $FILE2
Original issue reported on code.google.com by [email protected]
on 31 Jul 2010 at 9:37
In a multi-pv pipeline, if the first pv exits, another should take over the
IPC leader role.
Original issue reported on code.google.com by [email protected]
on 19 Feb 2007 at 1:48
Option for process title (Martin Sarsale)as "pv - name:FooProcess -xyz -
transferred: 1.3GB - 500KB/s - running: 10:15:30s"
Original issue reported on code.google.com by [email protected]
on 14 Dec 2010 at 2:30
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.