IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Filtrage de log - grep


Sujet :

Administration système

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut Filtrage de log - grep
    Bonjour,

    Je suis devant un petit problème.

    J'ai activé les logs "queries" sur mon dns.
    J'obtiens donc un fichier contenant toutes les requettes DNS de mon LAN.

    J'ai besoin de filtrer les demandes sortantes.

    J'utilise donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tailf queries.log |grep -vi ".name.fr\|in-addr.arpa"
    Jusque ici pas de soucis, j'obtiens bien ce que je veux.
    Mais si je fais ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tailf queries.log |grep -vi ".name.fr\|in-addr.arpa" >> filtre.log
    Rien n'est renvoyé dans mon fichier filtre.log.
    Je precise, j'ai fait un chmod 777 pour être sur qu'il n'y ai pas de pb.
    Petite précision, si je fais ceci:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tailf queries.log |grep -i ".name.fr\|in-addr.arpa" >> filtre.log
    Le fichier filtre.log se rempli bien.
    Le -v de mon grep lui plait pas ???? (redhat 4)

    Si quelqu'un peut m'aider.
    Soit à trouver mon erreur,
    Soit à filtrer directement dans la conf de mon DNS.

    Merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    peux-tu rediriger l'erreur standard vers la sortie standard et voir s'il y a qqch dans ton log de filtrage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tailf queries.log |grep -vi ".name.fr\|in-addr.arpa" >> filtre.log 2>&1

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    Même résultat.

    Il suffit que j'enleve le -v en option au grep pour que le fichier se remplisse.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Est tu es bien sûr d'avoir un resultat lorsque tu executes la commande sans rediriger l'output vers le fichier? Pas de faute de frappe?


    Peux-tu également rechercher l'option -v de grep dans la manpage et fournir les explications liées à cette option?

  5. #5
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    cadeau
    -v, --invert-match
    Invert the sense of matching, to select non-matching lines. (-v
    is specified by POSIX.)
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    si j'enleve le redirection , tout s'affiche à l'ecran avec ou sans le -v.
    Sans le -v le fichier se remplir, sur à 100%.

    -v
    Inverser la mise en correspondance, pour sélectionner les lignes ne correspondant pas au motif.

  7. #7
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    est ce que dans ton fichier il y a une seule ligne ne correspondant pas au motif ?
    Hiko-seijuro

    n'cha - hoyoyo gang

    espace perso : http://hiko-seijuro.developpez.com
    dernier tuto : Introduction à l'éditeur de texte Emacs sous linux
    consulter les faqs : http://www.developpez.com/faq
    PAS DE QUESTIONS TECHNIQUES PAR MP OU MAIL

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    Peut être une piste, si je fait un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cat queries.log |grep -vi ".name.fr\|in-addr.arpa" >> filtre.log
    Le fichier filtre.log se rempli !
    C'est peut être le tail qui me gene.
    Mais j'ai besoin de filtrer en temps reel, car j'ai une rotation de logs, je risquerais de perdre des infos si j'utilise le cat et un crontab.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    @ hiko-seijuro:

    Pour le grep normal (sans -v), tout est ok, pas de ligne ne correspondant pas.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ok le tail -f affiche les 10 dernières lignes par défaut et fait un grep sur ces 10 dernières lignes. Est-ce que tu as bien des lignes parmi les 10 dernières qui ne correspondent pas au pattern recherché?

    Lorsque tu fais un cat -> tu filtres sur tout le fichier.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    Je reprends depuis le debut, La commande suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tailf queries.log |grep -vi ".name.fr\|in-addr.arpa"
    Me renvois bien ce que je recherche à l'écran.
    C'est a dire extraire le ligne ne correspondant pas au motif dans mon fichier queries.log et ce en temps reel.

    Ce que je veux c'est enregistrer ce "filtre" dans un fichier.

    D'ou mon renvois dans un fichier



    ps: oui un cat filtre bien le fichier en entier

    Peut être une particularité de tail, ou une association tail / grep qui passe pas.
    J'ai lu dans le MAN que le grep -v pouvais être gourmand en ressources.
    C'est pour cela que j'ai test avec cat.

    merci de votre aide. Moi ca me depasse la

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    @ Mygale1978 :

    Precision

    tail affiche la dernière partie (par défaut : 10 lignes) de chacun des fichiers indiqués.
    -f, --follow
    Boucler indéfiniment, en essayant de lire de plus en plus de caractères à la fin du fichier, celui-ci devant grandir. Cette option est ignorée si la lecture se fait depuis un tube (pipe). Si plusieurs fichiers d'entrée sont indiqués tail affiche un en-tête dès qu'un fichier est modifié, pour montrer celui qui est imprimé.
    un tail -f = tailf

  13. #13
    Invité
    Invité(e)
    Par défaut
    Apparemment cette écriture peut poser porblème sur certains OS unix/linux.

    En faisant une petite recheche sur le tail je suis tombé sur ceci:

    http://www.unix.com/shell-programmin...ng-tail-f.html

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    Mon OS (redhat) supporte la commande apparement.

    Je me suis apercu que parfois j'avais une sortie dans mon fichier filtre.log
    Comme si la commande s'executais quand elle avait envie.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Ce n'est pas ça. En fait, c'est que la redirection dans un fichier induit une bufferisation. Le buffer est assez grand. Pour le voir, il faut engendrer un fichier qui grossit régulièrement, faire un tail -f, et rediriger dans un fichier.

    Donc ça s'affichera dans le fichier, mais quand le buffer sera plein et vidé dans le fichier.

  16. #16
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Points : 2 505
    Points
    2 505
    Par défaut
    Et tu as essayé en ajoutant le flag --line-buffered au grep ?

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 73
    Points : 76
    Points
    76
    Par défaut
    c'est parfais,

    c'etait bien ca, l'option --line-buffered renvois correctement dans mon fichier filtre.log

    merci pour cette réponse, genial

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/01/2014, 13h08
  2. [journalisation] filtrage de log
    Par drKzs dans le forum Administration système
    Réponses: 1
    Dernier message: 13/03/2013, 11h31
  3. grep dans logs avec retour à la ligne
    Par lguedon dans le forum Solaris
    Réponses: 9
    Dernier message: 10/04/2012, 13h44
  4. filtrage de logs apache
    Par zwaldo dans le forum Apache
    Réponses: 2
    Dernier message: 17/07/2008, 18h01
  5. Grep pour filtrer le fichier log
    Par devdev2003 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/02/2005, 05h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo