Podobnie jak w przypadku similar SO question, próbuję monitorować katalog na Linuksie w celu dodania nowych plików i chciałbym natychmiast przetworzyć nowe pliki po ich dostarczeniu. Wszelkie pomysły na najlepszy sposób realizacji tego?Monitorowanie katalogu zmian
Odpowiedz
Spójrz na inotify.
Inotify umożliwia oglądanie katalogu w celu utworzenia pliku.
Jednym z rozwiązań, o których myślałem, jest stworzenie "słuchacza plików" połączonego z zadaniem cron. Nie szaleję za tym, ale myślę, że to może zadziałać.
Jeśli chcesz je przetworzyć jak najszybciej, nie ma możliwości inotify. –
fschange (Linux File System Change Notification) jest idealnym rozwiązaniem, ale musi załatać swoje jądro
Uwaga ostrzeżenie na górze artykułu, '' 'fschange jest alternatywą dla inotify, która [została] zaimplementowana zanim inotify staną się częścią głównego jądra Linuksa. '' ' – TechplexEngineer
najpierw upewnij inotify-tools
w zainstalowana.
następnie wykorzystać je tak:
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"
Alternatywnie, przy użyciu --format
zamiast -c
na inotifywait
byłby pomysł.
Po prostu man inotifywait
i man inotifywatch
, aby uzyskać więcej informacji.
Można również użyć incron
i użyć go do wywołania skryptu obsługi.
Dzięki, najlepsza odpowiedź do tej pory. Byłem pewien, że jest coś fajnego z inotify i to jest dokładnie to. – akostadinov
- 1. Monitorowanie modyfikacji katalogu
- 2. Monitorowanie zmian zestawu JComboBox?
- 3. monitorowanie zmian plików C++ linux
- 4. ASP.Net monitorowanie katalogu debug HttpException
- 5. Monitorowanie katalogu w kakao/kakao Touch
- 6. Monitorowanie Mongo dla zmian z Node.js
- 7. Monitorowanie zmian w plikach w woluminach Docker
- 8. Oglądanie katalogu zmian w Javie
- 9. Przechowywanie zmian przy zachowaniu zmian w katalogu roboczym w Git
- 10. Czy istnieje zadanie ANT do oglądania katalogu zmian?
- 11. Jak monitorować repozytorium git dla zmian?
- 12. CLLocationManager - Monitorowanie regionów a znaczące zmiany lokalizacji
- 13. Redis - monitorowanie użycia pamięci
- 14. Monitorowanie plików/folderów
- 15. Monitorowanie zapytań użytkownika MySQL
- 16. Java: Monitorowanie pozyskiwania blokad
- 17. Monitorowanie Rsync Progress
- 18. Monitorowanie linii audio
- 19. Monitorowanie wielu aplikacji szyny
- 20. Monitorowanie błędów js
- 21. Monitorowanie zmiany właściwości
- 22. Monitorowanie USB OSX
- 23. Monitorowanie dla Commons DBCP?
- 24. Monitorowanie po uruchomieniu exe
- 25. Monitorowanie obciążenia aplikacji ASP.NET
- 26. Monitorowanie aktywności GHC
- 27. Monitorowanie użycia karty graficznej
- 28. Monitorowanie temperatury procesora
- 29. Monitorowanie użytkownika w Railsach
- 30. Celerybeat - wiele instancji i monitorowanie
Inotify nie obsługuje rekursywnie oglądania katalogów, co oznacza, że osobny zegarek inotify musi być utworzony dla każdego podkatalogu. Pamiętaj o tym. – Jason
Zobacz także pakiet o nazwie [incron] (http://inotify.aiken.cz/?section=incron&page=why) i jego [strona man] (http://linux.die.net/man/5/incrontab). Nie wiem, jak obsługuje podfoldery. – BeowulfNode42
Nie, incron nie obsługuje podfolderów, całkowicie zawiedziony w odpowiedniej kampanii "indiegogo", a incron drzemał w 2012 roku. Smutny, ale osiągnął ślepy zaułek. Naprawdę mam nadzieję, że inotify pozostanie ;-) – Frunsi