2013-08-16 4 views
0

Je ne suis pas un pro dans les scripts shell, c'est pourquoi je demande ici :).Shell Script qui surveille un dossier pour de nouveaux fichiers

Disons que j'ai un dossier. J'ai besoin d'un script qui surveille ce dossier pour les nouveaux fichiers (aucun nom de préfixe de fichiers n'est donné). Lorsqu'un nouveau fichier est copié dans ce dossier, un autre script devrait démarrer. Le deuxième script a traité le fichier avec succès, le fichier doit être supprimé.

J'espère que vous pouvez me donner quelques idées sur la façon de réaliser un tel scénario :)

Merci beaucoup à l'avance. Thomas

+0

http://stackoverflow.com/questions/7566569/how-to-continuosly-monitor-the-directory-using-dnotify-inotify-command – devnull

Répondre

2

Essayez ceci:

watcher.sh:

#!/bin/bash 
if [ -z $1 ]; 
then 
    echo "You need to specify a dir as argument." 
    echo "Usage:" 
    echo "$0 <dir>" 
    exit 1 
fi 

while true; 
do 
    for a in $(ls -1 $1/* 2>/dev/null); 
    do 
     otherscript $a && rm $a #calls otherscript with the file a as argument and removes it if otherscript returned something non-zero 
    done 
    sleep 2s 
done 

Ne pas oublier de le rendre exécutable

chmod +x ./watcher.sh 

appeler avec:

./watcher.sh <dirname> 
Questions connexes