👁 Многие до сих пор делают костыли с while true и проверками файлов через sleep, когда нужно отследить изменения. Это утилизирует CPU, даёт задержки и плохо масштабируется. В Linux есть нативный механизм — inotify, который позволяет получать события от файловой системы сразу, без опроса.
📝 Отслеживание изменений файлов и директорий через inotifywait
Утилита inotifywait позволяет подписаться на события: создание файлов, изменения, удаление и т.д. Флаг -m включает постоянный мониторинг, а события позволяют точно отслеживать, что происходит с файлами без лишней нагрузки.
inotifywait -m /var/log/myapp -e modify -e create -e delete📝 Реакция на изменения в реальном времени
Можно сразу обрабатывать события, например, реагировать на появление новых файлов. Это позволяет строить реактивные пайплайны без задержек и лишних проверок.
inotifywait -m /data -e create --format '%f' | while read file; do
echo "Новый файл: $file"
done📝 Масштабирование и лимиты inotify
При работе с большим количеством файлов можно упереться в лимиты ядра. Без увеличения лимитов мониторинг больших директорий может просто не работать или отваливаться.
sysctl fs.inotify.max_user_watches
sysctl -w fs.inotify.max_user_watches=524288❗️ inotify — это база для real-time обработки файлов в Linux. Если ты всё ещё используешь polling, то ты тратишь ресурсы впустую и получаешь менее предсказуемое поведение.
tags: #linux #мониторинг #полезно



