Главная   →   Блог   →   Мониторинг файловой активности в ОС Linux

Мониторинг файловой активности в ОС Linux

В процессе работы возникает множество задач, связанных с построением приложений, активно взаимодействующих с файловой системой для отслеживающих изменение файлов и каталогов. При их решении необходимо обеспечивать обработку происходящих с файлами изменений, которая, в свою очередь, должна быть оперативной и минимальной с точки зрения ресурсозатрат. Пример такого рода приложений — сервис DropBox, который должен оперативно обрабатывать все изменения внутри отведенного ему каталога, затрачивая минимум системных ресурсов.

Допустим, мы хотим написать некое приложение (или вебсайт), похожее на DropBox, которое должно работать в ОС Linux. Традиционно такое приложение состоит из 2-х подсистем – серверной и клиентской.

Серверная подсистема хранит файлы, производит авторизацию пользователя, обеспечивает синхронизацию изменений файлов, решение конфликтов, экспорт файлов, ведение версионности и т.д.

Клиентская подсистема обеспечивает доступ абонента к файлам, отслеживает локальные изменения и уведомляет о них серверную сторону. Ключевая проблематика клиентской части – отслеживание изменений файлов. Таким образом, самой важной, ключевой частью нашего приложения, должна стать подсистема отслеживания изменений файловой системы на стороне клиента.

Требования к данной подсистеме:

- Оперативность обработки изменений.

- Минимальность потребляемых ресурсов.

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

Решение «в лоб» – это периодический опрос части файловой системы со сверкой контрольных сумм файлов. Для этого мы должны обойти каждый элемент из интересующего каталога, затем выяснить его данные (атрибуты, контрольную сумму и т.д.) и сделать вывод о наличии изменения в искомом каталоге.

В начале работы приложения операция такого рода может быть оправдана, но затем такие «опросы» оказываются слишком ресурсоемкими и могут усложнять администрирование сервера. Поэтому необходимо использовать некое автоматизированное решение, которое бы производило определенные операции только при наличии изменений. В ОС Linux – это Inotify.

Inotify – это подсистема ядра Linux, отслеживающая изменения файловой системы и мгновенно отправляющая необходимым приложениям соответствующие события (удаление, чтение, запись и даже демонтирование). Среди прочего также можно отслеживать исходную и конечную точки перемещения.

Inotify генерирует события:

  1. IN_ACCESS Самое минимальное обращение к файлу
  2. IN_ATTRIB Изменение метаданных (к примеру — прав)
  3. IN_CLOSE_WRITE Файл, который был открыт для записи — закрыт
  4. IN_CLOSE_NOWRITE Файл, который был открыт не для записи — закрыт
  5. IN_CREATE Создание файла/директории
  6. IN_DELETE Удаление файла/директории
  7. IN_DELETE_SELF Удаление файла/директории, который является «точкой наблюдения»
  8. IN_MODIFY Изменение файла
  9. IN_MOVE_SELF Изменение файла/директории, который является «точкой наблюдения»
  10. IN_MOVED_FROM Перемещение файла из каталога наблюдения в некую область вне наблюдения
  11. IN_MOVED_TO Перемещение файла из некой области в каталог наблюдения
  12. IN_OPEN Открытие файла

Именно благодаря использованию таких событий и удается решить поставленную задачу.

Следите за нами в:

Если у вас есть вопросы или же вы хотели бы сделать запрос на разработку мобильного приложения, дизайна или адаптивного веб сайта - пожалуйста, используйте эту форму Форма обратной связи.

Next Posts
53931284ad675d62932e2d26457249058d87eb91 Мобильные приложения: нативные, веб и гибридные
Компании, которые думают о разработке мобильного приложения могут выбрать один из трех вариантов — нативные, веб или гибридные.
00bed15b93a7414d8325a4f9dd5becbe9c953ef4 Разработка мобильных приложений для игорного бизнеса
Сквозь века казино остаются крайне популярными. Тысячи людей ездят в разные уголки мира, чтоб попытать удачу. Но время не стоит на месте и теперь любая игра для казино может быть в вашем смартфоне. Многие онлайн казино сейчас предлагают мобильные версии а