Linux gestisce un’interessante funzionalità chiamata notify. Tale funzionalità è gestita dal software inotify e tra le varie applicazioni è possibile creare un sistema di monitoraggio circa i cambiamenti di files all’interno di una cartella.
Il seguente script bash:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
#!/bin/bash if [ "$*" = "" ]; then echo "File Monitoring" echo "USAGE: $0 <target directory>" | sed "s/.\///g" echo "" exit 0 fi LOGDIR="$HOME/.log" EVENTS="modify,move,create,delete" if [ ! -d $LOGDIR ]; then mkdir -p $LOGDIR fi TARGET_DIR="$*" LOGNAME="$LOGDIR/`date -I`.log" inotifywait -m -r --format '%T %e %w%f' --timefmt '%F %T' -e $EVENTS $TARGET_DIR | while read line do echo "$line" >> $LOGNAME done exit 0 |
se eseguito, non fa altro che monitorare la cartella che gli viene passata come parametro e creare un file di log in ~/.log/ in cui scrive un elenco di files aggiunti/modificati/cancellati nella cartella monitorata.
Modificando la riga echo “$line” >> $LOGNAME è possibile fare qualsiasi altra cosa (ad esempio avviare un backup o inviare una email nel caso di cancellazione, etc).
enjoy!
Se hai trovato utili le informazioni su questo blog,
Fai una donazione!
Clicca sul bottone qui sotto o almeno clicca sul banner pubblicitario 🙂
Commenta