FOSSPicks
Task monitor
progress
Almost since the beginning of Unix time, Unix command-line tools have done very little to show their output. The bearded wisdom is that if you can't see any output from a command, then nothing has gone wrong, and you can assume whatever task you started has completed successfully. If you need error and success states, look for exit values and act accordingly. This principle actually works very well, and it would be lovely if it was adopted by modern technology, such as REST websites and convergent mobile apps. But it does leave you with some ambiguity over whether something is still running, and if it is, how long until you can go to bed and turn off your PC.
This is where progress
can help. It works with many of the GNU core utilities that most of us take for granted. These core utilities include cp
, mv
, dd
, tar
, gzip
/gunzip
, cat
, and many more. You simply run them alongside the progress
command, either after the watch
command to present a general overview of core utility commands or forked after the execution of one specific command. For example, you can monitor the progress of the humble copy
command with
cp old.iso new.iso newfile & progress -mp $!
with progress
outputting the copy
percentages as it completes. This is useful if you're copying large data files to a slow USB storage device on the command line, such as from a Raspberry Pi. Because it's simply monitoring the /proc
filesystem for inputs and outputs on commands it knows, progress
then probes proc
to discover the status of those commands. It's a simple solution, but it works well and can be used in a huge variety of tasks, from monitoring a file or web server to the download status of something you've clicked in Firefox.
Project Website
https://github.com/Xfennec/progress
VPN
Buy this article as PDF
(incl. VAT)