Как отслеживать изменения в файлах с помощью inotify в Bash

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

bashinotifyinotifywait

👁 Когда нужно отслеживать изменения в файлах и директориях в реальном времени, можно использовать утилиту inotifywait, которая является частью inotify-tools в Linux. Этот метод особенно полезен для администраторов, DevOps инженеров и разработчиков, работающих с системами, где важен мониторинг изменений.

📝 Пример кода:

#!/bin/bash

# Каталог для мониторинга
DIR_TO_WATCH="/path/to/directory"

# Запускаем мониторинг на изменения файлов
inotifywait -m -r -e modify,create,delete $DIR_TO_WATCH | while read path action file; do
    echo "Изменение в файле: $file в $path, действие: $action"
done

📌 Как это работает:

  • inotifywait: инструмент, который позволяет отслеживать события файловой системы в реальном времени
  • -m: поддержка непрерывного мониторинга (мониторинг продолжается до завершения работы программы)
  • -r: рекурсивный мониторинг всех подкаталогов
  • -e modify,create,delete: отслеживаем изменения, создание и удаление файлов

❗️ Это решение можно внедрить в проекты, где важно отслеживать изменения файлов в реальном времени, например, для автоматической обработки логов, синхронизации данных или реагирования на изменения в конфигурациях.

tags: #bash #linux #мониторинг

❤️ @recura_tech

Скриншот терминала с Bash-кодом для inotifywait, показывающий фрагмент скрипта и подсветку кода; виден логотип RECURA внизу
Пример скрипта и вывода в терминале для мониторинга каталога через inotifywait.

Читайте так же