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 :

[KSH] Déclencher un traitement à réception de fichier


Sujet :

Shell et commandes GNU

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut [KSH] Déclencher un traitement à réception de fichier
    Bonjour,

    J'aurais besoin de savoir comment faire pour déclencher un script à réception d'un ou plusieurs fichiers. Voici en gros mon besoin :
    - Mon script principal est lancé par un ordonnaceur.
    - Dans mon script principal, un test est effectué pour savoir si tous les fichiers dont j'ai besoin sont arrivés.
    - Si ils ne sont pas tous arrivés, j'active un timer qui permet d'attendre la
    réception des fichiers.
    - Si TOUS les fichiers attendus arrivent avant l'expiration du timer,
    alors on démarre un script secondaire.


    Est ce possible de faire ça en KSH?
    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 738
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 738
    Par défaut
    bonjour,

    cela n'a rien de spécifique à ksh, je suggérerais inotifywait.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    Merci pour ta réponse mais mon serveur AIX ne connait pas cette commande

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 738
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 738
    Par défaut
    -> AIX

  5. #5
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Oui c'est possible de le faire en KSH.

    As-tu au moins essayé qqch ? Si oui, où est ce que tu bloques ?

    Lilian.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    Bin je pensais faire :
    - si par exemple mon timer est de 10 minutes alors je regarde 10 fois toutes les minutes avec un 'ls' si mon fichier est arrivé mais je trouve pas ça très propre. Quelqu'un a une solution meilleure?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Je pense que le mieux serait de mettre une tache planifiée dans le cron pour appeler ton script.

    Ton script (appelé toutes les n minutes) pourrais vérifier la présence d'un fichier, puis faire ce qu'il a à faire.

    Lilian.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    Je ne peux pas faire comme ça car tous mes fichiers peuvent être arrivés. Mon cas de figure serait plus une exception à gérer dans le cycle normal de l'application. C'est pour ça qu'il faut que je trouve la solution directement dans le code.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Je ne comprends pas tout...

    Quelles sont tes contraintes ?
    Où peux-tu intervenir ? Dans le script principal, ou ailleurs ?
    Dans quelle mesure ton script principal peut attendre l'arrivée des fichiers ?

    Lilian.

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    En fait je ne peux lancer mon script secondaire que lorsque le script principal détecte que tous les fichiers sont arrivés.

  11. #11
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    Où peux-tu intervenir ? Dans le script principal, ou ailleurs ?

  12. #12
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 738
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 738
    Par défaut
    Code non testé : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #!/bin/bash
     
    declare -i recpt
    timer=30
    files=( file1 file2 file3 file4 )
     
    checkRecpt() {
       recpt=0
       for file in "${files[@]}"
       do if [ -f "$file" ]
          then lsof -t "$file" >/dev/null >2&1 || recpt+=1
          fi
       done
       (( recpt < ${#files[@]} )) && { sleep $timer; checkRecpt; }
    }
     
    checkRecpt
    à adapter, et optimiser pour ksh
    ...
    ?

  13. #13
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    Merci mais ton exemple ne prend pas la possiblité qu'un des fichiers manquants arrive avant la fin du timer. Dans ce cas, il faudrait que mon traitement secondaire soit lancé avant la fin du timer.

  14. #14
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 296
    Par défaut
    ce que tu as besoin n'est pas possible en ksh seul, cad sans une application/outil capable de générer un évènement (signal) lors de l'arrivée d'un fichier (tel proposé au debut des réponses).
    Sur la solution proposée, l'ajustement du timer permet de se "rapprocher" du moment ou un fichier arrive, au mieux.

  15. #15
    Membre expérimenté
    Homme Profil pro
    Gérant infopsylon
    Inscrit en
    Juin 2010
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Gérant infopsylon
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2010
    Messages : 215
    Par défaut
    >MarcG
    Très perspicace...

    Désolé, je n'avais pas compris qu'il voulais utiliser un mécanisme évènementiel.

    Lilian.

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 81
    Par défaut
    OK merci je m'en doutais que ce n'était pas possible, je vais essayer de faire au mieux.
    Merci à tous

Discussions similaires

  1. Réponses: 10
    Dernier message: 11/10/2010, 16h29
  2. [INFO] Traitement d'un fichier texte
    Par doudine dans le forum API standards et tierces
    Réponses: 9
    Dernier message: 25/04/2006, 10h23
  3. [VBA-E]Traitement d'un fichier excel
    Par climz dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 12/04/2006, 15h28
  4. déclencher l'ouverture d'un fichier
    Par David38 dans le forum Général Python
    Réponses: 3
    Dernier message: 03/04/2006, 15h18
  5. [C#] [XML] Traitement de gros fichiers XML (90 Mo)
    Par Pulsahr dans le forum Windows Forms
    Réponses: 20
    Dernier message: 01/12/2005, 15h40

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