stfc
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:2k
- #!/usr/bin/perl
- #
- # Mihai Claudiu Capatina <mick@aignet.ro>
- # aka Mick
- #
- # This is a small script that I use on FreeBSD machines running ALTQ
- # This machines acts like a traffic management system and I need to see
- # the traffic for each class ( CBQ )
- # All you need to change in this script is the path to "altqstat"
- # and the name of the interfaces
- # In my case fxp0 is connected to my LAN and fxp1 is connected to my ISP
- # so...I measure on fxp0 the download and on the fxp1 the upload for each class
- #
- # This script has only one parameter....this is the class number assigned
- # by ALTQ.
- # If you want to use this script I suppose that you already instaled ALTQ
- # In any case do "altqstat -w 0 -c 2 -i your_interface" to see what your
- # class number is...for each class
- # If you want to count packets instead of bytes change the st line of the script# instead of $octeti_down and $octeti_up put $pakete_down and $pakete_up
- #
- # You will call this script from mrtg.conf like this :
- # Target[name]: `/your/path/to/my/script/stfc [class_number]
- # - name - can be an ip address or a client name or whatever you want
- # - class_number - explained above...
- # VERY IMPORTANT : always define classes in the same order for upload and
- # download...so they will have the same class number
- #
- # If you need additional information please feel free to mail me...I'll be glad
- # to help you...;-))
- $numar_clasa = $ARGV[0];
- @rezultat_down=`/usr/local/bin/altqstat -w 0 -c 2 -i fxp0`;
- foreach (@rezultat_down) {
- $count++;
- if ( /^Class(s+)(d+)(.*)/ ) {
- if ( $2 == $numar_clasa) {
- if ($rezultat_down[$count+2] =~ /^(s+)pkts: (d+),(s+)bytes: (d+)(.*)/) {
- $pakete_down = $2;
- $octeti_down = $4;
- }
- }
- }
- }
- @rezultat_up=`/usr/local/bin/altqstat -w 0 -c 2 -i fxp1`;
- foreach (@rezultat_up) {
- $count1++;
- if ( /^Class(s+)(d+)(.*)/ ) {
- if ( $2 == $numar_clasa) {
- if ($rezultat_up[$count1+2] =~ /^(s+)pkts: (d+),(s+)bytes: (d+)(.*)/) {
- $pakete_up = $2;
- $octeti_up = $4;
- }
- }
- }
- }
- open(UPTIME,"uptime |cut -b 13-26|");
- $upTime=<UPTIME>;
- close(UPTIME);
- chop $upTime;
- $host=`/bin/hostname --fqdn`;
- print("$octeti_downn$octeti_upn$upTimen$host");