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

  1. #1
    Membre expérimenté
    [AIX 7.1] Shell : attendre que des fichiers soient enlevés d'un dossier
    Bonjour,

    Mon script dépose des fichiers dans un répertoire (et ce n'est pas le seul) et ces fichiers sont consommés par un autre programme. Mon script doit ensuite faire un traitement une fois les fichiers consommés. Je ne vois pas comment faire pour "attendre" que les fichiers soient consommés à part faire un "ls" et vérifier que mes fichiers n'y sont plus. Ca ne me semble pas très performant. Quelqu'un aurait un exemple ou une indication pour faire cela d'une meilleure manière ?

    Cordialement,
    Christophe

    Pensez à mettre quand c'est le cas.

  2. #2
    Expert éminent sénior
    Bonjour

    Le premier réflexe, pour ne pas faire des find toutes les minutes, est d'utiliser incron.
    Il va surveiller un dossier ou un fichier et déclencher un script quand un évènement (défini spécialement) survient.

    En clair, ici, on pourrait faire surveiller la suppression de chaque fichier.
    Et déclencher la suite quand le dernier a été supprimé.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre expérimenté
    Merci pour ta réponse. Malheureusement incron n'est pas installé sur le serveur et je n'ai pas le droit de le faire.
    Christophe

    Pensez à mettre quand c'est le cas.

  4. #4
    Expert éminent sénior
    Alors bricolage.

    Par contre, pas de ls, ni de find. Tu as la liste de tes fichiers dans un tableau. Tu fais une boucle sur ceux-ci, et tant qu'ils existent, tu attends.

    Schématiquement :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for fic in "${tab[@]}"
    do 
        while [ -e "$fic" ]
        do
            sleep 30
        done
    done
     
    # Suite du code
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  5. #5
    Membre expérimenté
    La solution du tableau me plait bien. J'essaie ça dès que possible.
    Merci.
    Christophe

    Pensez à mettre quand c'est le cas.