Giter VIP home page Giter VIP logo

pipeviewer's Introduction

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

-----------------------------------------------------------------------------

pipeviewer's People

Stargazers

 avatar

Watchers

 avatar  avatar

pipeviewer's Issues

build fix for OS X 10.4 (Tiger)

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:

Investigate O_SYNC / fsync effects

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

Support for splice()

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

option to checksum the stream

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

fix rate-limit-under-10 bug

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

cross-compilation for Blackfin/uClinux fails because of explicit "ld" in autoconf/make/vars.mk

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

Write status to terminal title line

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:

po2table.sh doesn't create table.c

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

make test fails in 010-dd on OS X 10.4

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

Running "pv -R PID" where PID is the process ID of a non-pv process kills the process.

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

Problem with pv on cygwin

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

fix cursor positioning (-c) to use semaphores instead of locking

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

Add --skip option to seek in the input

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.