Re : Comparaison fichiers
Sujet en cours de lecture : Comparaison fichiers par | (Haut de page) |
Re : Comparaison fichiers
Tian
Envoyé le : 24/11/2005 à 18:10
Bonjour,
C'est a dire que plutot que boucler sur le fichier de logs, je bouclerais sur le fichier de nom blacklistes. Ensuite pour chaque nom, j'essaye de le trouver dans le fichier access.log (eventuellement que les dernieres lignes aussi) avec la meme expression reguliere que precedemment. Et la si on trouve on n'a plus qu'a extraire les infos necessaires. Ca donnerait donc quelque chose comme ca :
Je precise que je n'ai rien teste de tout ce que j'ai ecrit la. Donc il se peut que ca ne marche pas en l'etat.
En fait je procederais dans l'autre sens et en ne me servant pas du sed.
voici ce que je dois faire : comparer un fichier de log squid à un fichier d'url porno blaclisté et genere un fichier html du style IP - DATE - SITE si une url visité est dans la blackliste.
...
tail -n20 access.log | sed "s|.*http://\(www\.\)\?\([^/]*\).*|\2|" > lignes
while read ligne
do
grep ^$ligne$ domains.txt
done < lignes
C'est a dire que plutot que boucler sur le fichier de logs, je bouclerais sur le fichier de nom blacklistes. Ensuite pour chaque nom, j'essaye de le trouver dans le fichier access.log (eventuellement que les dernieres lignes aussi) avec la meme expression reguliere que precedemment. Et la si on trouve on n'a plus qu'a extraire les infos necessaires. Ca donnerait donc quelque chose comme ca :
tail -n20 access.log > lignes
for domain in `cat domains.txt
do
grep ".*http://\(www\.\)\?$domain.*" lignes | while read line
do
# A ce niveau $line contient la ligne complete qui a correspondu
done
done
Pour extraire les infos de $line, on peut utiliser gawk. Par exemple quelque chose comme ceci :echo $line | gawk '{print "IP : " $1 " - Date : " $4}' C'est la que va se faire le formattage (en rajoutant des balises HTML par exemple).Je precise que je n'ai rien teste de tout ce que j'ai ecrit la. Donc il se peut que ca ne marche pas en l'etat.
Réponses...
Date serveur : 08/10/2008 à 2:45
Les heures sont affichées en GMT +2 (Heure d'été)
Les heures sont affichées en GMT +2 (Heure d'été)
Ecrire une réponse | (Haut de page) |
* Au moins un des champs marqués d'une astérisque doit être renseigné