So what is the purpose of the script other than to show you your bandwidth
usage? I like the script, just wondering what you're doing with it.


On Tue, May 13, 2014 at 1:07 AM, Dan Egli <[email protected]> wrote:

> I was goofing around and decided I'd write a quick script that calls
> ifconfig so as to determine how much bandwidth is being used (up and down
> stream) on average. I wound up with something that I think would work, but
> I'm wondering if I can't do it better. As it stands, I call grep and cut a
> lot. I got to thinking though that awk might save me some of that
> (admittedly negligible) overhead. If I could pipe the ifconfig output
> through awk, that would, I'd think, run ever so slightly faster. However, I
> can't figure awk out. I don't actually have access to awk here, but this is
> something that I'm doing to keep my mind sharp. I'm hoping someone can help
> me out. Since there's a chance a friend of mine might wind up using
> something like this very script, I want to get it as fast AND as accurate
> as I can. I've copied the script as I THINK it should be below. If someone
> knows awk, please check it for me. And if you guys know a good web tutorial
> on awk, I'd love to know of it. Also, if there's a better way to do the
> math than using bc (since I don't think bash's math functions support
> decimals) I'd be curious to know of it. And yes, I know I could likely do
> something like this in perl with less work, but I know less about perl than
> I do about awk, so that's out of the question for now. Besides, this script
> may run on machines that don't HAVE perl. Thanks!
>
>
>
> --- Dan
>
>
>
> #!/bin/bash
>
> # actual line in question looks like: RX bytes:1024 (1 KiB)  TX bytes:4096
> (4 KiB)
>
> read START_RX START_TX <<< $(ifconfig eth0 | awk -F'[[:space:]:]+' '/bytes/
> {$print $3 $8}')
>
> sleep 5
>
> read NEW_RX NEW_TX <<< $(ifconfig eth0 | awk -F'[[:space:]:]+' '/bytes/
> {print $3 $8}')
>
> read AVG_RX AVG_TX <<< $(echo -e "($NEW_RX - $START_RX) * 8 / 5 / 1024 /
> 1024" \n($NEW_TX - $START_TX) * 8 / 5 / 1024 / 1024" | bc)
> echo -e "Average Megabits transmitted: $AVG_TX\t\t received: $AVG_RX"
>
> /*
> PLUG: http://plug.org, #utah on irc.freenode.net
> Unsubscribe: http://plug.org/mailman/options/plug
> Don't fear the penguin.
> */
>

/*
PLUG: http://plug.org, #utah on irc.freenode.net
Unsubscribe: http://plug.org/mailman/options/plug
Don't fear the penguin.
*/

Reply via email to