Fichier en cours d'utilisation
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:
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