At 9:42 AM -0500 9/18/06, Dan Nelson wrote:
In the last episode (Sep 17), Paul Hoffman said:
 > Greetings again. If I do a 'netstat -I em0 -b', I get:

Name Mtu Network Address Ipkts Ierrs Ibytes Opkts Oerrs Obytes Coll em0 1500 <Link#1> 00:0e:0c:67:c8:04 93555198 0 2179562966 114493253 0 723565977 0 em0 1500 fe80:1::20e:c fe80:1::20e:cff:f 0 - 0 4 - 288 - em0 1500 192.245.12 Balder-227 35399016 - 1770283188 114484197 - 3415268168 - em0 1500 192.245.12.22 Balder-228 27063120 - 1655024896 0 - 0 - em0 1500 192.245.12.22 Balder-229 47427840 - 3954775975 18975500 - 2445620452 -

 What I care about is the number of input and output bytes (in this
 case, 2179562966 and 723565977). I can write a short Perl script to
 parse the netstat output, but I would rather just get the numbers
 directly from the OS. Are these values available without going
 through netstat?

If you use the same code netstat does, yes :)  It looks like
per-interface stats are still obtained by grovelling through /dev/kmem,
though, so it may be easier to just parse netstat's output.

Yes, probably so. The quick-and-dirty Perl script I wrote is:

$ThisNetStat = `/usr/bin/netstat -I em0 -b`;
@Lines = split(/^/, $ThisNetStat);
$TheLine = $Lines[1];
$TheLine =~ s/ ( )*/ /g;
@Fields = split(/ /, $TheLine);
$InBytes =  $Fields[6];
$OutBytes = $Fields[9];

*However*, I now see that the byte numbers from netstat seem to wrap around at about 4 gigabytes. I'll have to add some code to handle that over the long term, given that my system puts out that much in a day...

Another
alternative would be to install net-snmp and ask it for the stats.

I thought SNMP stood for "Simply Not My Problem"? :-)

--Paul Hoffman
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to