[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: R: R: [RiminiLUG-General] Starting date di un processo



Il gio, 2003-12-18 alle 20:23, Davide Venturini ha scritto:
> > "Connessione iniziata" <<zoppe>>, ovvero senza la relativa riga di
> > connessione terminata.
> > ;-)
> 
> Ok, dai, hai fatto 30, fa 31...converti quei minuti in giorni e ore e minuti
> e il gioco è perfetto :-)

Bene, Davide. Mi aspettavo quest'osservazione ;)

Allora e' il caso che ricorriamo alla potenza dell'AWK (o GAWK nel caso
di GNU).
Puoi fare una semplice shell come questa :
--- starts here ---
#!/bin/sh
LANG=C

BASEDIR=`dirname $0`

grep pppd /var/log/messages | \
        grep "Connect" | \
        grep -v "terminated" | \
        awk -f $BASEDIR/tempo.awk
echo
--- ends here ---
salvarla, chiamandola ad esempio come connect-stat.sh, e dargli i permessi 700, 
con ower = root (perche' solo root puo' leggere i messaggi di log di sistema).
Poi devi creare il file "tempo.awk", che deve risiedere nella stessa directory dove
e' la prima shell, e' dev'essere piu' o meno cosi':
--- starts here ---
{
  if($7 == "time" || $7 == "tempo" )
  {
    min=$8;
    ore=int(min/60);
    if(ore) {
      min -= ore*60;
    }

    giorni=int(ore/24);
    if(giorni) {
      ore -= giorni*24;
    }

    printf("%s %s %s Connessione Terminata. Durata= ", $1, $2, $3 );
#   printf("Minuti = %.1f, equivalente a ", $8 )
    if( giorni )
      printf("%d giorni, ", giorni );

    if( ore )
      printf("%d ore, ", ore );

    printf("%.1f minuti \n", min );
  }
  else
  {
    printf("%s %s %s Connessione iniziata.\n", $1, $2, $3 );
  }
}
--- ends here ---

Funziona, l'ho anche testato.
L'unica cosa, se vuoi che rimanga sulla stessa linea "Connessione
iniziata ... terminata", e sufficiente che tu tolga l'ultimo '\n' che
trovi nel file awk

> 
> Resta però il fatto che devo disconnettermi per sapere quanto è durata :-)

Certo, se non ci sono le informazioni, non le posso certo inventare ....
Si potrebbe tutt'al piu' cercare la successiva linea di inizio
connessione che non incontra un "termine" connessione, ma qui poi
scendiamo in maggiori complicazioni ....

Ciao
Gabriele

-- 
Saluti (Good bye)
Gabriele Zappi

+----- Using Fedora Core 1 (Yarrow) - 2.4.22-1.2115.nptl-GZ -------+
| E-mail address ..........: zappig@xxxxxxxxxxx                    |
| G. Zappi's personal pages: http://xoomer.virgilio.it/zappig/     |
|                            http://spazioinwind.libero.it/gzappi/ |
| ICQ Uin # 36664317                                               |
| Jabber account ..........: gabolander@xxxxxxxxxxxxxxx            |
+------------------------ AMD K7 Athlon XP ------------------------+


-- 
Mailing list info: http://lists.linux.it/listinfo/riminilug-general