This post appeared originally in our sysadvent series and has been moved here following the discontinuation of the sysadvent microsite

This post appeared originally in our sysadvent series and has been moved here following the discontinuation of the sysadvent microsite
pv
is a nice little tool that will take stdin and make a nice little
progress bar and displaying time elapsed, percentage completed (if size is known)
current throughput rate and the total data transferred and with an ETA.
So if you have a tool that can output it’s result on standard output or read from standard input, one can get a progress bar!
It’s nice to know that “data is flowing”.
Send file with Netcat and get a nice progress-bar:
pv file | nc -w 1 example.com 3000
Get progress bar on tar output:
tar zcf - /directory | pv > backup.tar.gz
MySQL dump/restore:
mysqldump database | pv > database.sql
pv database.sql | mysql database
Limit the transfer rate and size of data over a pipe
cat /dev/zero | pv -L 3m -Ss 100m > /dev/null
I’ve considered time tracking and I’ve tested several software solutions. Perspective matters - I’m a systems administrator, I prefer doing things through the command line, and my favorite programming language is Python. My recommendations will be biased. I also feel strongly about open source and free software, and I want full control of my own data. Solutions where I cannot download the source code is not considered, same if I need to send my data to some “cloud solution”.