#!/bin/bash
# Network statusbar for the GNU Screen v0.0
#Copyright (C) 2005 Marcel Bischoff

#This program is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

#no function
refresh=1
#number of bars
bars=20
#max bytes/s incomming
maxin=130000
#max bytes/s outgoing
maxout=20000
#net device
netd=eth0


oldin=`cat /proc/net/dev |grep $netd | sed 's/:/ /' | awk '{ print $2}'`
oldout=`cat /proc/net/dev |grep $netd |sed 's/:/ /' | awk '{ print $10}'`
while newin=`cat /proc/net/dev |grep $netd | sed 's/:/ /' | awk '{ print $2}'`  ; do {
    newout=`cat /proc/net/dev |grep $netd | sed 's/:/ /' |awk '{ print $10}'`
    in=$[($newin - $oldin)]
    out=$[($newout - $oldout)]
    echo -n [
    for i in $(seq 1 $bars); do {
        if test $i -le $[($in*$bars)/$maxin] && test $i -le $[($out*$bars)/$maxout]; then
                echo -n "|";
        elif test $i -le $[($in*$bars)/$maxin]; then
                echo -n ">";
        elif test $i -le $[($out*$bars)/$maxout]; then
                echo -n "<";
        else echo -n " ";
        fi
    }
    done
    echo "] in: $[$in/1024]k/s out: $[$out/1024]k/s"
    sleep $refresh
    oldin=$newin
    oldout=$newout
}
done

#hack your ~/.screenrc like this:
#backtick 1 0 0 ~/scripts/netbar
#hardstatus alwayslastline " %1`"

Generated with vim2html
Copyright © 2003-2004 by Chip Cuccio <http://norlug.org/~chipster/finger>