Analogamente a similar SO question, sto provando a monitorare una directory su una macchina Linux per l'aggiunta di nuovi file e vorrei elaborare immediatamente questi nuovi file quando arrivano. Qualche idea sul modo migliore per implementarlo?Monitorare la directory delle modifiche
risposta
Vedere inotify.
Con inotify è possibile visualizzare una directory per la creazione di file.
Una soluzione a cui ho pensato è creare un "listener di file" abbinato a un cron job. Non sono pazzo di questo, ma penso che potrebbe funzionare.
Se si desidera elaborarli al più presto, non vi è alcun modo per inotify. –
fschange (Linux File System Change Notification) è una soluzione perfetta, ma ha bisogno di patch per il kernel
Nota l'avvertimento nella parte superiore dell'articolo, '' 'fschange è un'alternativa all'inotify che [è stato] implementato prima che inotify diventasse parte del kernel Linux mainline. '' ' – TechplexEngineer
Prima di tutto assicuratevi inotify-tools
in installato.
poi usarli come questo:
logOfChanges="/tmp/changes.log.csv" # Set your file name here.
# Lock and load
inotifywait -mrcq $DIR > "$logOfChanges" &
IN_PID=$$
# Do your stuff here
...
# Kill and analyze
kill $IN_PID
while read entry; do
# Split your CSV, but beware that file names may contain spaces too.
# Just look up how to parse CSV with bash. :)
path=...
event=...
... # Other stuff like time stamps?
# Depending on the event…
case "$event" in
SOME_EVENT) myHandlingCode path ;;
...
*) myDefaultHandlingCode path ;;
done < "$logOfChanges"
alternativa, utilizzando --format
anziché -c
su inotifywait
sarebbe un'idea.
Solo man inotifywait
e man inotifywatch
per ulteriori informazioni.
È anche possibile utilizzare incron
e utilizzarlo per chiamare uno script di gestione.
Grazie, la migliore risposta finora. Ero sicuro che c'era qualcosa di carino con inotify e questo è esattamente. Funziona come un incantesimo. – akostadinov
- 1. Controlla l'elenco delle directory per le modifiche?
- 2. Come posso monitorare una directory di Windows per le modifiche?
- 3. Monitorare le modifiche su un oggetto array
- 4. Modo affidabile di monitorare le modifiche ai file in una directory utilizzando il framework .NET
- 5. Come monitorare continuamente la directory utilizzando il comando dnotify/inotify
- 6. Utilizzo di FileSystemWatcher per monitorare una directory
- 7. Monitorare i contenuti di file/directory?
- 8. Errore nell'aggiornamento delle modifiche svn
- 9. Come posso monitorare il DOM per le modifiche?
- 10. Come monitorare un repository git per le modifiche?
- 11. compressione directory utilizzando shutil.make_archive(), preservando la struttura delle directory
- 12. Salvataggio delle modifiche in SlickGrid
- 13. Monitoraggio delle modifiche ai campi utilizzando mongoose.js
- 14. Rollback delle modifiche in Salesforce
- 15. Tenere traccia delle modifiche - Django
- 16. Come monitorare le modifiche nell'URL (Identificatore frammento - la parte di ancoraggio di un URL)
- 17. Come capire la struttura delle directory dell'albero radice di Android?
- 18. Android: ascolto delle modifiche variabili
- 19. Esistono strumenti per monitorare la risposta HTTP?
- 20. NHibernate + modifiche simultanee: come ricevere notifiche delle modifiche?
- 21. un programma per monitorare una directory su Linux
- 22. Come guardare una directory per le modifiche?
- 23. Evita l'errore troppe modifiche contemporaneamente nella directory
- 24. Elenco cronologia delle modifiche via webdav
- 25. Come si memorizza la cronologia delle modifiche in modo efficace?
- 26. .NET ha la cronologia delle modifiche del fuso orario?
- 27. Annullare la parte delle modifiche non modificate in git
- 28. Tempo MAMP tra la visualizzazione delle modifiche dal vivo
- 29. Tenere traccia delle modifiche alle liste e dizionari in Python?
- 30. Come monitorare le modifiche ai file su unità mappate in rete?
Inotify non supporta la visualizzazione ricorsiva delle directory, ovvero è necessario creare un orologio inotify separato per ogni sottodirectory. Tienilo a mente. – Jason
Vedere anche il pacchetto chiamato [incron] (http://inotify.aiken.cz/?section=incron&page=why) e la sua [man page] (http://linux.die.net/man/5/incrontab). Non sono sicuro di come gestisca le sottocartelle. – BeowulfNode42
No, incron non gestisce le sottocartelle, ha fallito completamente in una campagna "indiegogo" appropriata, e incron si è assopita nel 2012. Triste, ma ha raggiunto un vicolo cieco. Spero davvero, inotify rimarrà ;-) – Frunsi