skript pre vypis z logu

Sekcia: Konfigurácia 25.07.2006 | 22:34
Jan   Návštevník
Mam takyto log # IPFMv0.11.5 2006/06/28 18:05:00 (local time) -- dump every 0d01:00:00 -- listening on eth1 # Host In (bytes) Out (bytes) Total (bytes) 192.168.1.5 17323854 36390745 53714599 192.168.1.27 9108902 3697053 12805955 192.168.1.53 4010227 3827226 7837453 192.168.1.36 3678746 4055882 7734628 192.168.1.43 3149723 3936789 7086512 192.168.1.62 3650113 459502 4109615 # end of dump 2006/06/28 18:05:00 Potrebujem napisat skript, tak ze po zadani skriptu a zvolenej ip adresy z logu vypise pod seba do konzoly len data in a out pre zadanu ip. Pomoze niekto?
    • Re: skript pre vypis z logu 24.07.2006 | 21:53
      WlaSaTy   Návštevník
      ak mi das konektivitu, tak to aj odladim. pokial ma kazda IPka iba jeden zaznam v logu, tak to zvladnes aj sam s grepom (pozor na medzeru). pokial ma kazda ipka viacej zaznamov, tak napriklad takto: awk -c ip=192.168.1.15 ' {if ($1==ip) {in+=$2;out+=$3;all+=$4;}} END{printf("ip=%s in=%i out=%i all=%i\n", ip, in, out, all);} ' subor1.log subor2.log ale nemam to na com odladit ... predpokladam ze chces vytvorit statistiku kto kolko za urcite obdobie preniesol ... a to sa da urobit dost podobne :-)
      • Re: Re: skript pre vypis z logu 24.07.2006 | 22:08
        Jan   Návštevník
        log je len jeden, obnovuje sa kazde 5 min. ip adresu je potrebne zadat za skriptom. Potrebujem to pre mrtg grafy. Napr. skript bude s nazvom ipfm-mrtg. Tak ked zadam #ipfm-mrtg 192.168.1.5 vypise 17323854 36390745
        • Re: Re: Re: skript pre vypis z logu 24.07.2006 | 22:23
          WlaSaTy   Návštevník
          vystupny format mozes zmenit (man 5 printf) a cele to mozes obliect do shell scriptu.
          • Re: Re: Re: Re: skript pre vypis z logu 24.07.2006 | 22:39
            Jan   Návštevník
            To je to co vobec neviem. Obdobny skript som nasiel tu http://www.centenaro.net/index.php?pagename=MRTG%20graph%20from%20IP%20Flow%20Meter Tento sript mi vypise uptime aj hostname co by bolo ok, ale nevypise mi data in a out.
            • Re: Re: Re: Re: Re: skript pre vypis z logu 24.07.2006 | 22:52
              WlaSaTy   Návštevník
              pokial mas vsetky tie ipcky na tom istom pocitaci, tak je to uptime uzitocne ... a to zabalenie sa da urobit: #!/bin/sh awk -v a=$1 ... samozrejme ze ten printf uz zvladnes ...
              • Re: Re: Re: Re: Re: Re: skript pre vypis z logu 24.07.2006 | 23:31
                jan   Návštevník
                Nemozes mi ten skript napisat? Pripadne opravit ten s odkazu?
                • Re: Re: Re: Re: Re: Re: Re: skript pre vypis z log 24.07.2006 | 23:56
                  WlaSaTy   Návštevník
                  mozem, vyzera to ze si poskytovatelom internetu a ja si rad privyrobim. najvhodnejsie pre nas obidvoch by bolo upravit skript z odkazu, aspon by som sa naucil perl a niekto by mi to zaplatil.
                  • Re: Re: Re: Re: Re: Re: Re: Re: skript pre vypis z 25.07.2006 | 09:13
                    Jan   Návštevník
                    #!/usr/bin/perl
                    
                    $logdir         =       "/var/log/ipfm/";
                    $logfile        =       "ipfmlog.log";
                    $hostname       =       "/bin/hostname --fqdn";
                    $uptime         =       "/usr/bin/uptime | /usr/bin/cut -b 14-28";
                    
                    @HOSTS=(
                    #  insert strings contained ip_number::name
                            "192.168.0.1::hostname1",
                            "192.168.0.2::hostname2",
                    );
                    
                    open (LOG,"$logdir$logfile");
                    while () {
                            chop;
                            $line = $_;
                            if ($line !~ /^#.*/) {
                                    foreach $ip_comment (@HOSTS) {
                                            ($ip,$comment) = split("::",$ip_comment);
                                            if ($comment eq $ARGV[0]) { $par=$comment; }
                                            if ($line =~ /^$par\s*(\d*)\s*(\d*)\s*(\d*)/) {
                                                    $HOSTSIn{$comment}  += $1;
                                                    $HOSTSOut{$comment} += $2;
                                                    $HOSTSTot{$comment} += $3;
                    #### for debugging
                    #print "$HOSTSIn{$comment}  = $1;       $HOSTSOut{$comment} = $2;$HOSTSTot{$comment} = $3;";
                                            }
                                    }
                            }
                    }
                    close (LOG);
                    
                    
                    if ($par eq "") {
                            foreach $com (keys(%HOSTSIn)) {
                                    $TotalIn  += $HOSTSIn{$com};
                                    $TotalOut += $HOSTSOut{$com};
                            }
                    } else {
                            $TotalIn = $HOSTSIn{$par};
                            $TotalOut = $HOSTSOut{$par};
                    }
                    
                    print "$TotalOut\n";
                    print "$TotalIn\n";
                    print `$uptime\n`;
                    print `$hostname\n`;
                    
                    Tento skript vypise uptime a hostname. Nevypise out a in. Co treba opravit?
                    • Re: Re: Re: Re: Re: Re: Re: Re: Re: skript pre vyp 25.07.2006 | 12:33
                      WlaSaTy   Návštevník
                      predpokladam ze ten log mas citatelny, cesta a nazov je na zaciatku. takze by som odporucil prelozit vetu: insert strings contained ip_number::name a pozor na rozne typy uvodzoviek ...
                      • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: skript pre 25.07.2006 | 20:15
                        Jan   Návštevník
                        log je citatelny, cesta aj nazov su spravne. kontroloval som uvodzovky podla skriptu v odkaze. Ci su tam spravne to neviem. Zadavam skript a nazov pc takto
                        #/etc/mrtg# ./skuska-ipfm4.pl hostname20
                        
                        
                        
                        27 days, 23:40,
                        router.domena.sk
                        
                        Miesto pre data in a out je prazdne ked zadam len skript bez hostname
                        #/etc/mrtg# ./skuska-ipfm4.pl
                        0
                        20736
                        27 days, 23:47,
                        router.domena.sk
                        
                        sice vypise nejake data in a out avsak nespravne, nepatria k ziadnemu ip. To iste vypise aj ked dam chybne hostname.
                        • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: skript 25.07.2006 | 21:16
                          WlaSaTy   Návštevník
                          predpokladam ze si v skripte spravne naplnil pole pre IPcky::hostnejmy a skusil to spustit s spravnym parametrom (hostname alebo ipcka).
                          • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: sk 25.07.2006 | 21:32
                            Jan   Návštevník
                            Myslim, ze ano
                            @HOSTS=(
                            #  insert strings contained ip_number::name
                                    "192.168.1.20::hostname20",
                                    "192.168.1.27::hostname27",
                                    "192.168.1.53::hostname53",
                            );
                            
                            Zaujimave ze ked spustim s parametrom hostname tak miesto pre in a out je prazdne. Ked spustim s parametrom ip tak tam vypise nespravne data rovnake ako pri spusteni bez parametra.
                            • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 25.07.2006 | 22:34
                              WlaSaTy   Návštevník
                              v perli sa nevyznam a nemam zdrojove data takze nemozem posluzit, krystalova gula zapadla prachom.
                  • Re: Re: Re: Re: Re: Re: Re: Re: skript pre vypis z 25.07.2006 | 00:05
                    Jan   Návštevník
                    :-) nie som poskytovatel a nemozem ani platit. Aj tak dik za ochotu.
                    • Re: Re: Re: Re: Re: Re: Re: Re: Re: skript pre vyp 25.07.2006 | 00:17
                      WlaSaTy   Návštevník
                      nz, staci sa pozriet do hociakeho skriptu a zbadas ze je to drobna zmena :-)