Как использовать inotifywait для синхронизации и мониторинга

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

inotifywaitrsynclinux

👁 Работа с большими данными и автоматизация файловых задач требуют мгновенного реагирования на изменения. Вместо сложных cron-работ можно использовать inotifywait, отслеживающий изменения в файловой системе в реальном времени. Он полезен для обновления файлов, обработки данных и синхронизации каталогов.

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

#!/bin/bash

# Путь к отслеживаемой директории
WATCH_DIR="/path/to/watch"

# Команда для выполнения при изменении
COMMAND="rsync -avz /path/to/source /path/to/destination"

# Используем inotifywait для мониторинга изменений
inotifywait -m -r -e modify,create,delete --format '%w%f' "$WATCH_DIR" | while read FILE
do
  echo "Изменения в файле: $FILE"
  # Выполнение команды синхронизации
  $COMMAND
done

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

  • inotifywait — это инструмент для мониторинга изменений в файловой системе, который поддерживает событийный режим. Мы используем параметры -m для постоянного мониторинга, -r для рекурсивного обхода подкаталогов, и -e для выбора интересующих событий, таких как создание, изменение или удаление файлов.
  • Каждое изменение в указанной директории будет вызывать выполнение команды (в данном случае синхронизации с помощью rsync).

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

tags: #linux #полезно

🧭 @recura_tech 🌐 VK 🌐 MAX

Скриншот терминала с Bash-скриптом для inotifywait и rsync: виден фрагмент кода мониторинга файловой системы и логотип RECURA внизу изображения.
Скриншот примера скрипта inotifywait и rsync из поста.

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