Bonjour à tous,
Je suis nouveau sur le forum. Je connais le shell mais vraiment pas un expert.
Je vous remercie d'avance pour votre aide.
Voilà mon script :
Code : 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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 #!/bin/ksh set -x #positionnement des variables # récuperation une liste de fichier dans NOM_FIC, et non un seul fichier # tant qu'il n'y a pas de fichier, on boucle while true do REP="/home/1000/test" if [ `ls -ltr $REP/* | wc -l` = "0" ] then echo "Le repertoire $REP est vide" >> /home/1000/repertoire_vide.log else for file in `ls -a $REP/*` # ls -1l pour mettre sur une colonne si +sieurs fichiers do fuser $file 2> /dev/null if [ $? -eq 0 ] # fuser trouve un process associé dans $file alors on passe au fichier suivant. then sleep 10 continue else # fuser trouve pas de process, donc fichier libre on envoi mv /home/1000/test/* /home/1000 fi done fi done
----> ce script marche pour 1 seul fichier ou plusieurs mais pas en cours d'utilisation.
S'il y a 1 fichier "fermé" et 1 en cours d'utilisation, il "move" quand même.
Avec le fuser, pourtant, je teste le code retour... et il attend que tous les fichiers sont fermés et ne bougent plus.. pourtant, cela ne marche pas.
Merci encore pour votre aide
Jacques
Partager