bash linux

Iniciado por elvehe, 22 Abril 2015, 02:25 AM

0 Miembros y 1 Visitante están viendo este tema.

elvehe

Mi problema es que el siguiente programa tarda demasiado en ejecutarse
En este programa busco la cantidad de macs x dia sin repetirse que han accesado al servidor.

¿Como podría optimizarlo?
el codigo es el siguiente
(creo que es lento por la cantidad de archivos que leo linea por linea)



Código (bash) [Seleccionar]
....
for dia in `ls /bitacora/graficas/salida.$horaConAno-$mes-* | cut -d"." -f2 | cut -d"-" -f3`
do  
` > archivoDeMacsDiferentes`
cantMacsDife=0
for hora in `ls /bitacora/graficas/salida.*_$ano-$mes-$dia | cut -d"." -f2 | cut -d"_" -f1`  
do
  archivoDeBitacora="/bitacora/graficas/salida."$hora"_"$ano"-"$mes"-"$dia

  while read line
  do    
      mac=`echo $line | cut -d" " -f2`        
     macEnArchivodifeDeMacs=`cat archivoDeMacsDiferentes | grep $mac`
          #echo $mac"="$macEnArchivodifeDeMacs "fecfa:"$hora
      if [ -z $macEnArchivodifeDeMacs ]; then #si no existe lo agrego
           cantMacsDife=`expr $cantMacsDife + 1 `
                `echo $mac>>archivoDeMacsDiferentes`
     fi
  done<$archivoDeBitacora
done
echo "dia:"$dia",TotalPcDiferentes:"$cantMacsDife
done


Mod: los Códigos deben ir en etiquetas GeSHi