Bonjour,
Je suis en train de vérifier un script qui boucle infiniment sur les actions suivantes:
1 - teste l'existence de fichier(s) dans un répertoire
2 - si des fichiers existent, lance en background une application de traitement pour chaque fichier (avec au max N fichiers qui sont traités en parallèle avec un ordonnancement de type "file d'attente" - chaque appli efface (mv vers un tmpdir) le fichier du répertoire source)
3 - une fois que la liste est parcourue et qu'un emplacement est libre dans la file d'attente, boucle sur (1)
Je pense être à deux doigts d'avoir une solution viable.
Sauf que, lorsque le répertoire est vide, mais qu'on est en train de le remplir, et que la liste des fichiers est actualisée alors que des fichiers sont en train d'être copiés depuis un poste distant (donc potentiellement lent via réseau), comment m'assurer que le délai est suffisamment long pour que les fichiers soient intègres avant de les traiter ?
Merci par avance de votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 while :; do filelist=( ${input_dir}/* ) if [ ${#filelist[@]} -gt 0 ]; then for file in ${filelist[*]}; do if [ -f $file ]; then # teste si par hasard ce n'est pas un répertoire # est-ce suffisant pour tester l'intégrité du fichier - par exemple si la copie est encore en cours ??? echo $file bash <appli> -d ${output_dir} ${file} & ... trucs pour gérer la queue ... fi done fi sleep 1 done
xflr6
Partager