Direvent è un daemon leggero e potente del progetto GNU che monitora directory per eventi del filesystem (creazione, cancellazione, modifica di file) e lancia programmi esterni in risposta. Perfetto per automatizzare reazioni immediate a cambiamenti in file di configurazione, log o cartelle critiche – tutto in puro Software Libero.
Novità della 5.5 (rilasciata a giugno 2026):
- Tutti i subprocessi vengono terminati correttamente prima dell’uscita del daemon.
- Nuova direttiva di configurazione shutdown-timeout per controllare il comportamento durante lo spegnimento.
- Miglioramenti generali di stabilità e pulizia.
Configurazione base (file direvent.conf)
Ecco un esempio semplice:
# Monitora /etc per cambiamentiwatcher /etc { event create modify delete; command "/usr/local/bin/backup-config.sh $file";}
# Logga accessi a una cartellawatcher /var/log { event modify; command "echo 'Modificato: $file' >> /var/log/direvent.log";}
Poi avvii con: direvent -c direvent.conf
Esempi pratici reali
- Backup automatico di file di configurazione Ogni volta che modifichi qualcosa in /etc (es. nginx.conf, fstab), parte uno script che fa commit Git o copia su backup esterno. Ottimo per server!
- Sincronizzazione o deploy
watcher /home/user/progetto { event modify; command "rsync -av /home/user/progetto/ user@server:/deploy/";}
- Modifichi un file → deploy automatico (con nowait per non bloccare).
- Notifiche o alert di sicurezza Monitora cartelle sensibili (/root, chiavi SSH) e invia email/Signal o riavvia servizi se cambiano file inattesi.
- Elaborazione batch su nuovi file In una cartella di upload: nuovi file PDF → conversione automatica con pdftotext o compressione.
Vantaggi rispetto a inotify/watchdog: configurazione dichiarativa, supporto ricorsivo, gestione eventi composti e portabilità tra Linux, BSD, ecc.
In Debian:
Debian 13 include già pacchetti GNU eccellenti, e Direvent è perfetto per automazioni leggere e libere. Installazione su Debian 13:
sudo apt updatesudo apt install direvent
(Se non fosse ancora nei repo stabili, puoi compilare dalla source GNU – è semplice e consigliato per la versione 5.5 fresca.)
Configurazione di esempio per Debian
Crea /etc/direvent.conf:
# Esempio pratico: backup automatico config di sistemawatcher /etc { event create modify delete; command "/usr/local/bin/direvent-backup.sh $file"; shell yes; # espande variabili con la shell}
# Ricorsivo su una cartella progettiwatcher /home/$USER/progetti recursive { event modify; command "echo 'Cambiato $file - $(date)' >> /var/log/direvent.log";}
# Shutdown gracefulshutdown-timeout 10;
Script di esempio /usr/local/bin/direvent-backup.sh
#!/bin/bashFILE="$1"BACKUP_DIR="/var/backups/direvent/$(date +%Y-%m-%d)"mkdir -p "$BACKUP_DIR"cp -a "$FILE" "$BACKUP_DIR/$(basename $FILE).$(date +%H%M%S)"echo "Backup di $FILE completato" | systemd-cat -t direvent
Rendilo eseguibile: chmod +x /usr/local/bin/direvent-backup.sh
Avvio come servizio systemd
Crea /etc/systemd/system/direvent.service:
[Unit]Description=GNU Direvent - Directory Event MonitorAfter=network.target
[Service]ExecStart=/usr/bin/direvent -f -c /etc/direvent.confRestart=alwaysUser=root
[Install]WantedBy=multi-user.target
Poi:
sudo systemctl daemon-reloadsudo systemctl enable --now direventsudo systemctl status direvent
Fatto! Ora Debian 13 reagisce automaticamente ai cambiamenti nei file. Puoi espandere con logrotate, notifiche via mail o integrazione con cron.