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

Shell et commandes GNU Discussion :

Script de vérification pour la bonne réception d'un fichier


Sujet :

Shell et commandes GNU

  1. #21
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Salut,

    Si j'ai bien tout suivi depuis le début tu cherches l'occurrence d'un fichier datant du 1er du mois en cours, c'est bien ça ?

    Si oui, alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    egrep -q "fichier$(date '+%Y%m01')" info.log && echo "OK" || echo "Pas bon"
    Patapé si ce n'est pas ça, hein ?
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  2. #22
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ah ben non alors, pas awk | sed

    et le tail dans une variable svp.
    Bien sûr, mais je n'ai pas écrit que je ferais comme ça, juste "quelque chose comme ça"
    ɹǝsn *sıɹɐlos*

  3. #23
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Salut,

    Si j'ai bien tout suivi depuis le début tu cherches l'occurrence d'un fichier datant du 1er du mois en cours, c'est bien ça ?

    Si oui, alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    egrep -q "fichier$(date '+%Y%m01')" info.log && echo "OK" || echo "Pas bon"
    Patapé si ce n'est pas ça, hein ?
    Le problème est que ça va afficher "Pas bon" même si la situation est corrigée le lendemain (ou plus tard). C'est pour ça que je ne testais pas le jour dans mon "brouillon" de script.

    Je préfère aussi ne traiter que la dernière ligne car elle peut éventuellement contenir un message d'erreur qui invalide la ligne du mois courant (ou pas ...).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tail -1 info.log | grep -q "fichier$(date '+%Y%m')" info.log && echo "OK" || echo "Pas bon"
    ɹǝsn *sıɹɐlos*

  4. #24
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    Le problème est que ça va afficher "Pas bon" même si la situation est corrigée le lendemain (ou plus tard).
    Euh... et pourquoi ça ? J'ai pas tout compris là

    Si le 03 le fichier n'est pas présent ça affichera "Pas bon", mais si le 04 le fichier est ajouté, ça affichera "Ok", non ?
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  5. #25
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ah ben non alors, pas awk | sed

    et le tail dans une variable svp.
    Nouvelle version tenant entre autres compte de ces deux remarques:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    lastLine=$(tail -1 /depot/fichiers/info.log)
    rv=1
    if [ "$(printf "%s" "$lastLine" | awk '{gsub("..$","",$3); print $3}')" = fichier$(date +%Y%m) ]; then
        if [ -f /depot/fichiers/"$(printf "%s" "$lastLine" | awk '{print $3})" ]; then
            echo "OK - $(printf "%s" "$lastLine" | awk '{printf "fichier reçu le %s à %s\n",$1,$2);}')"
            rv=0
        else
            echo "KO - incohérence entre fichier de log et contenu du répertoire cible"
        fi
    else
        echo "KO - $(tail -1 /depot/fichiers/info.log)"
    fi
    exit $rv
    ɹǝsn *sıɹɐlos*

  6. #26
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Euh... et pourquoi ça ? J'ai pas tout compris là

    Si le 03 le fichier n'est pas présent ça affichera "Pas bon", mais si le 04 le fichier est ajouté, ça affichera "Ok", non ?
    A priori, ça affichera "Pas bon" car le fichier ajouté le 4 devrait s'appeller "fichier20130904" si l'on se réfère au post #3 où Céline donne comme exemple "fichier_20130908".
    ɹǝsn *sıɹɐlos*

  7. #27
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par jlliagre Voir le message
    A priori, ça affichera "Pas bon" car le fichier ajouté le 4 devrait s'appeller "fichier20130904" si l'on se réfère au post #3 où Céline donne comme exemple "fichier_20130908".
    Oui mais moi je me réfère au post #12 et d'autres (avant et après, notamment 7, 3, 14 pour des exemples de fichiers) où il spécifie bien :

    Pourquoi 20130909 si c'est le premier du mois ?

    Citation:
    c'était juste un exemple , normalement c'est le 01 de chaque mois
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  8. #28
    Modérateur
    Avatar de jlliagre
    Homme Profil pro
    Ingénieur support avancé & développement
    Inscrit en
    Juin 2007
    Messages
    2 695
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur support avancé & développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 695
    Points : 7 842
    Points
    7 842
    Par défaut
    "normalement" != "uniquement".

    Le fichier est normalement transmis le premier du mois, mais s'il ne l'est pas, on peut supposer que l'on ne va pas attendre un mois pour résoudre le problème en ayant un voyant rouge allumé en permanence sous Nagios.

    Si la correction a consisté à renvoyer le fichier le 4 du mois, par exemple, rien ne permet d'assumer qu'il a été nommé "fichierYYYYMM01".
    ɹǝsn *sıɹɐlos*

  9. #29
    Rédacteur/Modérateur
    Avatar de Winnt
    Homme Profil pro
    budget et contrôle de gestion
    Inscrit en
    Décembre 2006
    Messages
    1 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : budget et contrôle de gestion
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 978
    Points : 4 130
    Points
    4 130
    Par défaut
    Bonsoir,

    Citation Envoyé par Céline
    Bonjour tout le monde.

    Je reçois un fichier chaque mois du coup je voudrai faire un script pour vérifier la bonne réception . *

    Le fichier s'appelle fichier_datemoisjour qui se trouve dans le fichier log : info.log

    Pouvez-vous m'aider à créer ce script.

    Est ce que juste avec un cat du fichier log ça ira ?

    Merci beaucoup d'avance.
    En résumé tu souhaite être informé de la création d'un fichier dans un répertoire spécifique.

    Si tu as la main sur le serveur utilise incron avec la surveillance d'événement IN_CLOSE.

    Code à insérer dans incrontab : Sélectionner tout - Visualiser dans une fenêtre à part
    <répertoire à surveiller>  IN_CLOSE  <chemin absolu vers script>/<mon script> $#

    Code <mon script> : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #!/bin/bash
    Fichier="Le fichier $1 a été créé le $(date)."
    mail -s "Fichier créé" xxx@yyy.zzz < $Fichier
    Voilà avec cela tu reçoit un mail une fois le fichier créé dans le répertoire que tu veux surveiller.
    Charge à toi de peaufiner ce bout de script.
    Winnt
    Merci de lire les règles du forum LaTeX et Qu'est ce qu'un ECM ?.
    N'hésitez pas à parcourir la FAQ la réponse y est peut-être déjà.
    Pensez au bouton si votre problème est résolu.


    C'est en Linuxant qu'on devient .... geek
    Et c'est en LateXant qu'on devient flemmard
    Mon blog tout neuf.
    Articles : présentation de la distribution Gentoo, Les index sous LaTeX et leur personnalisation.

Discussions similaires

  1. Vérification pour un quizz
    Par magic33 dans le forum Langage
    Réponses: 10
    Dernier message: 24/01/2007, 09h54
  2. petit scripte a faire pour un l'ecole
    Par sircam61 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/12/2005, 14h44
  3. modifier script sql oracle pour firebird
    Par bud1703 dans le forum SQL
    Réponses: 2
    Dernier message: 25/08/2005, 15h32
  4. script de vérification
    Par break_71 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 08/06/2005, 17h24
  5. [VB6]Vérification pour un entier
    Par shinchan dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/01/2005, 15h28

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