Pepin dans script sh

Pepin dans script sh - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 23-08-2004 à 11:42:34    

Bonjour,  
j ai un petit soucis avec un script qui me donne l utilisation en temps reel de l activite sur mon proxy squid.  
 
voici le script qui va taper sur le log de squid :  
 
#!/bin/sh  
 
ACCESS_LOG=/var/log/squid/access.log  
 
echo -en "Content-type: text/html\n\n"  
users=`netstat --inet | grep -i proxy | grep webcache | grep ESTABLISHED | gawk '{print $5}' | cut -f 1 -d '.' | cut -f 1 -d ':'`  
array=()  
 
echo -en "<html>\n<head>\n<title>Utilisation Instant T</title>\n"  
echo -e "<style type=\"text/css\">\nbody { color: #000000; background: #ffffff; }\ntd { color: #000000; background: #dddddd; text-align: left; vertical-align: top; }\ntd.subhdr { color: #000000; background: #66ccff; font-weight: bold; }\nth { color: #000000; background: #3399ff; text-align: center; vertical-align: middle; }\n</style>\n</head>\n<body bgcolor=\"#FFFFFF\" text=\"#000000\" link=\"#000088\" vlink=\"#000088\" alink=\"#000088\">"  
echo "<p align=\"left\"><a href=\"../index.html\">Retour au sommaire</a></p>"  
 
echo "<h1 align=\"left\">Usage instantané du proxy</h1>"  
echo "<table border=\"0\" width=\"100%\">"  
echo -e "<tr>\n<td class=\"subhdr\"><b>Machine</b></td>\n<td class=\"subhdr\"><b>Méthode</b></td>\n<td class=\"subhdr\"><b>URL</b></td>\n<td class=\"subhdr\"><b>Taille</b></td>\n</tr>"  
count=0  
for i in `echo $users`  
do  
  j=0  
  num=1  
  while [ 1 ]  
  do  
    if [ -z ${array[$j]} ]; then  
      break  
    fi  
    if [ ${array[$j]} = $i ]; then  
      num=`expr $num + 1`  
     # echo ${array[$j]}  
    fi  
    j=`expr $j + 1`  
  done  
  match=`cat $ACCESS_LOG | grep $i | tail -n $num | head -n 1`  
  echo $match | gawk -v host=$i '{  
 printf("<tr>\n<td>%s</td>\n<td>%s</td>\n<td>%s</td>\n", host, $3, $4);  
 if ($5 >= (1024 * 1024))  
   printf("<td>%s Mo</td>\n</tr>\n", $5 / (1024 * 1024));  
 else  
   if ($5 >= 1024)  
     printf("<td>%.2f Ko</td>\n</tr>\n", $5 / 1024);  
   else  
     if ($5 > 0)  
       printf("<td>%s octects</td>\n</tr>\n", $5);  
     else  
       printf("<td></td>\n</tr>\n" );  
 }'  
  array[$count]=$i  
  count=`expr $count + 1`  
done  
echo -e "</table>\n<br>\n<br>"  
echo -e "<p align=\"left\"><a href=\"#\" OnClick=\"document.location.reload()\">Rafraichir la page</a></p>\n<br>\n<br>"  
echo -ne "</body>\n</html>"  
 
et voici une ligne de mon access.log :  
1092378444.696     43 machine.domaine.com TCP_IMS_HIT/304 269 GET http://www.lequipe.fr/home/ok.gif - NONE/- image/gif  
 
alors je capte que dalle il me sort bien le "host" mais j aimerai pouvoir afficher la methode (GET/POST) l url et la taille.
 
Les $3 et $4 sont vides ... ? lorsque je fais un printf... par contre le host lui n est  pas vide  
HELP


Message édité par rizzla_tsa le 23-08-2004 à 12:49:31

---------------
"Douter de tout ou tout croire, ce sont les deux solutions également commodes qui l'une et l'autre nous dispensent de reflechir." Henri Poincaré.
Reply

Marsh Posté le 23-08-2004 à 11:42:34   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed