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é.
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é.