Creation de script

FRED92G Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   -  
FRED92G Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je recherche un script qui reprend les fichiers log de mes blacklists squidGuard qui me les tri ensuite pas IP client dans un autre fichier

Ce qui me donne un fichier par IP client

Ensuite le fichier squidGuard.log soi archiver avec les dossiers IP par client

Mes la difficulté serai qu'il soit en temps réel pour la création des fichiers par IP clients

Et que l'archivage soit nommer de la dater du jour et quel ce face pendent la procédure d'arrêt du proxy avent que le pc s'arrête

merci
A voir également:

1 réponse

mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
Sans voir la structure des fichiers difficile à dire. À mon avis le mieux que tu aies à faire c'est te familisariser avec les commandes shell dont tu vas avoir besoin (tail, grep) et les redirections (pipes, >, >>, ...).

Exemple :

tail -f /var/log/monfichierdelog | egrep "([0-9]{1,3}\.){3}[0-9]{1,3}"


... permet d'écouter l'arrivée de nouvelle lignes dans /var/log/monfichierdelog et d'extraire les lignes qui contiennent une adresse IP.

Ensuite l'idéal serait que tu lises un tutoriel de programmation shell de sorte à écrire un fichier qui lorsqu'il reçoit une ligne contenant une adresse IP, extrait l'information dont tu as besoin et l'écrive dans le fichier approprié.

Supposons que tu sauves la lignes que tu lis dans la variable "ligne", par exemple à l'aide de cette méthode :
https://forums.commentcamarche.net/forum/affich-37620017-comment-lire-un-fichier-ligne-par-ligne

Alors cette commande extrait l'adresse IPv4 de la chaîne stockée dans la variable "ligne" :

echo $ligne | egrep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3}"


Tu peux donc sauver l'ip présente dans une ligne avec une instruction shell dans ce genre :

ligne=...
ip="$(echo $ligne | egrep -Eo "([0-9]{1,3}\.){3}[0-9]{1,3})"


On peut alors imaginer construire le nom du fichier dans lequel sauver une information comme ceci

filename="/tmp/monfichier_${ip}"


... et ainsi écrire à la fin de ce fichier comme suit :

echo "pouet" >> $filename


Bonne chance
0
FRED92G Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   4
 
le truck c est que se son les logs de squidguard a trier donc les logs bl_porn bl_adult bl_mixte_adult voila pour les nom des logs après comment ecrire le script je voit pas comme tu la dit en plus faut le sauvegarder le document trier et qu il soit archiver en tar.gz
0
mamiemando Messages postés 33774 Date d'inscription   Statut Modérateur Dernière intervention   7 883
 
Je n'ai rien compris. Essaye d'être plus clair (qu'est ce que tu veux faire exactement etc...), de faire moins de fautes, sinon je vais avoir du mal à t'aider :-)

Je pense que tu peux en attendant déjà commencer à lire un cours de shell.
0
FRED92G Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   4
 
squidguard a son logs principale et des sous logs pour les catégorie de liste qui bloque donc les bl_porn bl _mixte adulte et bl_adult son des rapport de blocage de site qui se von si les gent vont sur les site bloquer donc je voudrai trier c est log par adresse ip pour éviter d avoir un log avec 10 adresse ip dedans
0
FRED92G Messages postés 290 Date d'inscription   Statut Membre Dernière intervention   4
 
je voudrai me retrouver avec 10 nouveau log par ip c est plus facile pour contrôler après
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Commences par mettre en application ce que t'as dit/donné mamiemando dans son 1er post, lis des tutoriels sur les scripts et reviens nous voir là où tu coinces.

Ce que tu veux n'existe pas en tout prêt, tu dois construire ton propre script selon tes besoins spécifiques.
0