Filtra eventi watchdog con USN journal

This commit is contained in:
2026-07-02 10:20:13 +02:00
parent 7b609a8d65
commit deaabb46c0
10 changed files with 381 additions and 65 deletions

View File

@@ -320,9 +320,11 @@ unchanged_checks_required: 2
Quando si monitora una directory molto ampia, ad esempio un'intera unita' `D:\`, la semplice navigazione con Explorer o altri programmi puo' generare eventi `modified` non rilevanti. Per ridurre questi falsi positivi senza costruire una baseline completa del disco, il servizio deve applicare una strategia pigra:
- non deve scansionare all'avvio tutti i file gia' presenti;
- un evento `modified` viene registrato solo se il timestamp di modifica del file e' recente rispetto all'evento;
- se esiste gia' uno snapshot locale per quel file, l'evento viene registrato solo se dimensione o timestamp risultano diversi dallo snapshot conosciuto;
- i file gia' presenti nel disco entrano quindi in coda solo quando vengono realmente salvati/modificati, non quando vengono solo navigati.
- watchdog intercetta gli eventi file ma non li considera automaticamente validi;
- per eventi `created`, `modified` e `moved`, il servizio consulta il journal USN NTFS;
- entrano in coda solo eventi con reason USN di contenuto reale o creazione/rinomina utile, ad esempio `DATA_OVERWRITE`, `DATA_EXTEND`, `DATA_TRUNCATION`, `FILE_CREATE`, `RENAME_NEW_NAME`;
- eventi di soli metadati, chiusura handle, indicizzazione, security o basic info devono essere ignorati;
- se USN non e' disponibile su un volume, il servizio deve fare fallback conservativo e registrare un warning nei log.
## Configurazione