Inotify
Aller à la navigation
Aller à la recherche
| Type | Sous-système du noyau Linux |
|---|---|
| Rôle | Surveillance d'événements sur le système de fichiers |
| Outils | inotifywait, inotifywatch (paquet inotify-tools) |
inotify est un sous-système du noyau Linux permettant de surveiller les événements survenant sur des fichiers ou des répertoires (création, modification, suppression, etc.). Les utilitaires en ligne de commande sont fournis par le paquet inotify-tools.
Installation
yum install inotify-tools
Voir aussi les commandes inotifywatch et inotify-tools.
Exemple simple
Surveiller la création de fichiers dans un répertoire :
#!/bin/sh
# CONFIGURATION
DIR="/tmp"
EVENTS="create"
# MAIN
inotifywait -m -e $EVENTS --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %f' $DIR |
while read date time file
do
echo "$date $time Fichier créé: $file"
done
Exemple avec traitement asynchrone (FIFO)
#!/bin/sh
# CONFIGURATION
DIR="/tmp"
EVENTS="create"
FIFO="/tmp/inotify2.fifo"
# FUNCTIONS
on_exit() {
kill $INOTIFY_PID
rm $FIFO
exit
}
on_event() {
local date=$1
local time=$2
local file=$3
sleep 5
echo "$date $time Fichier créé: $file"
}
# MAIN
if [ ! -e "$FIFO" ]
then
mkfifo "$FIFO"
fi
inotifywait -m -e "$EVENTS" --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %f' "$DIR" > "$FIFO" &
INOTIFY_PID=$!
trap "on_exit" 2 3 15
while read date time file
do
on_event $date $time $file &
done < "$FIFO"
on_exit