Anyone recommend a command-line network bandwidth tool they use on fedora? I'm talking about something to show MB/sec across the local machine's network interface(s), and perhaps more (breakdown by protocol, etc.). I can't find any pre-packaged ones in fedora (bad search criteria?) but have seen ntop, ipband, and iptraf mentioned on the web...
Thanks
nosp wrote:
Anyone recommend a command-line network bandwidth tool they use on fedora? I'm talking about something to show MB/sec across the local machine's network interface(s), and perhaps more (breakdown by protocol, etc.). I can't find any pre-packaged ones in fedora (bad search criteria?) but have seen ntop, ipband, and iptraf mentioned on the web...
iptraf
On Mon, Nov 03, 2003 at 01:10:51AM +0000, nosp wrote:
Anyone recommend a command-line network bandwidth tool they use on fedora? I'm talking about something to show MB/sec across the local machine's network interface(s), and perhaps more (breakdown by protocol, etc.). I can't find any pre-packaged ones in fedora (bad search criteria?) but have seen ntop, ipband, and iptraf mentioned on the web...
Thanks
ntop will do more than you want. It will give you the cumulative bandwidth on your whole network. Instantaneous bandwidth is more problematic. But if you run it only for short time it may work.
On Mon, 2003-11-03 at 03:10, nosp wrote:
Anyone recommend a command-line network bandwidth tool they use on fedora? I'm talking about something to show MB/sec across the local machine's network interface(s), and perhaps more (breakdown by protocol, etc.). I can't find any pre-packaged ones in fedora (bad search criteria?) but have seen ntop, ipband, and iptraf mentioned on the web...
Have you tried netrate (python) by Alex Popa??? I've attached it to this message...
Thanks
-- fedora-list mailing list fedora-list@redhat.com http://www.redhat.com/mailman/listinfo/fedora-list
---BEGIN-OF-CODE---
#!/usr/bin/python
# netrate - a program to "graphically" show on a linux console # the transfer rate on each interface # also tested on rxvt
# it will display the transfer rate for the last second (coming soon), # and the transfer rate for the last SECONDS seconds. #
NUM_SAMPLES=20 # number of samples per second NUM_SECONDS=5 # number of seconds MIN_RATE=1024.0 # max_rate does not go below this value
# terminal settings TERM_HOME='\x1b[H' TERM_CLR_EOL='\x1b[K' TERM_CLR_SCREEN='\x1b[J' TERM_IN_COLOR='\x1b[41m' # red TERM_OUT_COLOR='\x1b[42m' # green TERM_NORMAL_COLOR='\x1b[m' # no attributes
TERM_WIDTH=80
from string import split from time import time,sleep from sys import stdin,stdout,argv,exit from getopt import getopt
# help def help(): print "Usage:\n\t%s -h\n"%argv[0] print "\t%s [-w width] [-s seconds] [-n num_samples]\n"%argv[0] exit()
# main options,junk=getopt(argv[1:],"hw:s:n:") del junk for i in options: if(i[0]=='-h'): help() if(i[0]=='-w'): try: TERM_WIDTH=int(i[1]) except: help() if(i[0]=='-s'): try: NUM_SECONDS=int(i[1]) except: help() if(i[0]=='-n'): try: NUM_SAMPLES=int(i[1]) except: help() del options
delay=1.0/NUM_SAMPLES
statfile=open('/proc/net/dev','r') # first get the current status... tmp=statfile.readlines() statfile.close() del statfile tmp=tmp[2:] num_interfaces=len(tmp) interfaces=[0,]*num_interfaces initial_in=[] initial_out=[] max_rate=MIN_RATE
for i in range(num_interfaces): tokens=split(tmp[i][7:]) interfaces[i]=split(tmp[i][:6])[0] initial_in.append(float(tokens[0])) initial_out.append(float(tokens[8]))
total=NUM_SAMPLES*NUM_SECONDS times=[time()-1.0]*total in_values=[] out_values=[]
for i in range(total): in_values.append(initial_in[:]*num_interfaces) out_values.append(initial_out[:]*num_interfaces)
del initial_in,initial_out
current=0 last=1
# print samples[0][1][0][1] # print interfaces
# I keep a circular buffer, so samples[current] is the current sample, and # samples[last] is the earliest sample, which will be overwritten next time
stdout.write(TERM_HOME+TERM_CLR_SCREEN)
while 1: statfile=open('/proc/net/dev') tmp=statfile.readlines() tmp=tmp[2:] statfile.close()
times[current]=time() for i in range(num_interfaces): tokens=split(tmp[i][7:]) in_values[current][i]=float(tokens[0]) out_values[current][i]=float(tokens[8])
sleep(delay) stdout.write(TERM_HOME)
stdout.write('Max Rate: %10.2f\n'%max_rate) for i in range(num_interfaces): time_diff=times[current]-times[last] stdout.write('%-10s: in:%10.2f bytes/sec out:%10.2f bytes/sec'\ %(interfaces[i],\ (in_values[current][i]-in_values[last][i])/time_diff,\ (out_values[current][i]-out_values[last][i])/time_diff)) stdout.write(TERM_CLR_EOL+'\n') in_rate=(in_values[current][i]-in_values[last][i])/time_diff out_rate=(out_values[current][i]-out_values[last][i])/time_diff max_rate=max(in_rate,out_rate,max_rate) stdout.write(TERM_IN_COLOR+(' '*int(TERM_WIDTH*in_rate/max_rate))\ +TERM_NORMAL_COLOR+TERM_CLR_EOL+'\n') stdout.write(TERM_OUT_COLOR+(' '*int(TERM_WIDTH*out_rate/max_rate))\ +TERM_NORMAL_COLOR+TERM_CLR_EOL+'\n') stdout.flush() current=current+1 last=last+1 if(current==total): current=0 max_rate=max(max_rate*0.90,MIN_RATE) else: if(last==total): last=0
---END-OF-CODE
On Mon, 03 Nov 2003 18:49:50 +0200 "Razvan Corneliu C.R. "d3vi1" VILT" razvan.vilt@linux360.ro wrote:
On Mon, 2003-11-03 at 03:10, nosp wrote:
Anyone recommend a command-line network bandwidth tool they use on fedora? I'm talking about something to show MB/sec across the local machine's network interface(s), and perhaps more (breakdown by protocol, etc.). I can't find any pre-packaged ones in fedora (bad search criteria?) but have seen ntop, ipband, and iptraf mentioned on the web...
Have you tried netrate (python) by Alex Popa??? I've attached it to this message...
Thanks
iptraf is the best.