Here is an interesting project that permits to display and measure the rate of data across a network connection or data being stored in a file.
This tool is named
Speedometer. He needs python 2.6 (or higher) to operate.
We're gonna see how to install it and use it. It's really easy !
For Debian based distros, simply launch:
apt-get install speedometer
For others distros (like us with CentOS), We first have to download and install
Urwid:
cd /downloads
wget http://excess.org/urwid/urwid-1.0.1.tar.gz
tar -xvzf urwid-1.0.1.tar.gz
cd urwid-1.0.1
python setup.py install
Then we can install Speedometer like this:
cd /downloads
wget http://excess.org/speedometer/speedometer-2.8.tar.gz
tar -xvzf speedometer-2.8.tar.gz
cp speedometer.py /usr/local/bin/speedometer
chown root: /usr/local/bin/speedometer
chmod 755 /usr/local/bin/speedometer
That's all !
Now, let's see the help command of this little tool:
[root@localhost ~]$ speedometer
Usage: speedometer [options] tap [[-c] tap]...
Monitor network traffic or speed/progress of a file transfer. At least one
tap must be entered. -c starts a new column, otherwise taps are piled
vertically.
Taps:
-f filename [size] display download speed [with progress bar]
-r network-interface display bytes received on network-interface
-t network-interface display bytes transmitted on network-interface
-c start a new column for following tap arguments
Options:
-b use old blocky display instead of smoothed
display even when UTF-8 encoding is detected
(use this if you see strange characters)
-i interval-in-seconds eg. "5" or "0.25" default: "1"
-k (1|16|88|256) set the number of colors this terminal
supports (default 16)
-l use linear charts instead of logarithmic
you will VERY LIKELY want to set -m as well
-m chart-maximum set the maximum bytes/second displayed on
the chart (default 2^32)
-n chart-minimum set the minimum bytes/second displayed on
the chart (default 32)
-p use original plain-text display (one tap only)
-s use bits/s instead of bytes/s
-x exit when files reach their expected size
-z report zero size on files that don't exist
instead of waiting for them to be created
Note: -rx and -tx are accepted as aliases for -r and -t for compatibility
with earlier releases of speedometer. -f may be also omitted for similar
reasons.
Python Version: 2.7
Urwid >= 0.9.9.1 detected: yes UTF-8 encoding detected: yes
To display live RX traffic on eth0 network interface, simply launch (press 'q' to quit):
speedometer -rx eth0
To display live TX traffic on eth0 network interface, launch:
speedometer -tx eth0
Here's some usage examples given on Speedometer Web page:
How long it will take for my 38MB transfer to finish?
speedometer favorite_episode.rm $((38*1024*1024))
How quickly is another transfer going?
speedometer dl/big.avi
How fast is this LAN?
host-a$ cat /dev/zero | nc -l -p 12345
host-b$ nc host-a 12345 > /dev/null
host-b$ speedometer -rx eth0
How fast is the upstream on this ADSL line? (start an upload first)
speedometer -tx ppp0
How fast can I write data to my filesystem? (with at least 1GB free)
dd bs=1000000 count=1000 if=/dev/zero of=big_nothing &
speedometer big_nothing
To finish, let me show you some screenshots that we can see on Speedometer Web page:
Link to Speedometer Web page:
http://excess.org/speedometer/