GNU/Linux >> Tutoriels Linux >  >> Linux

Script pour surveiller le dossier pour les nouveaux fichiers ?

Comment puis-je détecter immédiatement lorsque de nouveaux fichiers sont ajoutés à un dossier dans un script bash ? Je voudrais que le script traite les fichiers dès qu'ils sont créés dans le dossier. Existe-t-il d'autres méthodes que la planification d'une tâche cron qui recherche de nouveaux fichiers chaque minute environ ?

Réponse acceptée :

Vous devriez envisager d'utiliser inotifywait , par exemple :

inotifywait -m /path -e create -e moved_to |
    while read dir action file; do
        echo "The file '$file' appeared in directory '$dir' via '$action'"
        # do something with the file
    done

Dans Ubuntu inotifywait est fourni par inotify-tools emballer. À partir de la version 3.13 (actuelle dans Ubuntu 12.04) inotifywait inclura le nom de fichier sans l'option -f. Les versions plus anciennes peuvent avoir besoin d'être forcées. Ce qu'il est important de noter, c'est que le -e option pour inotifywait est la meilleure façon de filtrer les événements. Aussi, votre read La commande peut affecter la sortie positionnelle à plusieurs variables que vous pouvez choisir d'utiliser ou d'ignorer. Il n'est pas nécessaire d'utiliser grep/sed/awk pour prétraiter la sortie.


Linux
  1. Comment utiliser Inotifywait pour surveiller un répertoire pour la création de fichiers d'une extension spécifique ?

  2. Script Shell pour déplacer les fichiers les plus anciens ?

  3. Pseudo fichiers pour données temporaires ?

  4. Imprimer tous les fichiers d'un dossier ?

  5. Cloner /etc/skel par programmation pour les nouveaux utilisateurs ?

Commande ls sous Linux pour lister les fichiers

8 commandes fondamentales de gestion de fichiers Linux pour les nouveaux utilisateurs

Script de translittération pour le shell Linux

Moniteur de bande passante pour Mac OS X ?

script pour surveiller les nouveaux fichiers dans un dossier partagé (hôte Windows, invité Linux)

Comment forcer des autorisations spécifiques pour les nouveaux fichiers/dossiers sur le serveur de fichiers Linux ?