Pour la vue d'ensemble. J'ai une bonne 20aine de serveurs qui doivent utiliser une table de raisons
id_raison texte_raison
afin de qualifier certains logs (postfix pour ne pas les nommer)
j'ai un fichier de traitement des logs, je boucle dessus en perl, j'extrait de chaque ligne une "raison" de bounce.
maintenant le but est de trouver l'id_raison correspondant à cette raison, comme il ya plein de serveur et que je veux pas charger la base sql, je veux faire une sorte de grep sur un fichier texte contenant la table en dur sur chaque serveur linux. Si la raison n'est pas dans le fichier ... il faut faire un appel à une page web d'admin pour ajouter la ligne dans la table (et donc obtenir son id) et mettre à jour le hash.
Pour cela j'ai déjà la partie de parse du fichier de log, j'ai aussi l'extraction de la raison. Je travail donc sur le hash de la table, j'ai reussi à faire un appel web à une page me renvoyant un fichier texte (merci à http://forum.hardware.fr/... de la forme :
id_raison tabulation text_raison
Mon problème numéro 1 : - je ne parviens pas à le rentrer dans un hash (j'ai le content de la page dans une variable $data), j'imagine qu'il faut boucler sur chaque ligne et découper selon la tabulation mais ... impossible .... (je sais boucler sur le fichier passer en paramètre au fichier perl mais boucler sur le contenu d'une variable ...)
my $data;
my $result = fetch_url($raw_url,$data);
if ($result) {
while ( $data ) {
print $_;
#$raisons{$k} = $v;
}
}
La seconde question est (ou plutôt groupe de questions) ... comment gérer la mise à jour de la table hash ? dois-je la tie avec le fichier text pour qu'elle se mette à jour toute seule ? devrais-je récupérer l'ensemble de mon fichier ? ou juste faire un ajout avec le retour de l'appel à la page d'insertion ?
Je me demande d'ailleur s'il n'existe pas un moyen de transférer directement du contenu en hash sans passer par des boucles ....
J'espère que ceci n'est pas trop confus, merci d'avance pour votre aide ...
Stéphane
