Главная   →   Блог   →   Мониторинг файловой активности в ОС 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
00bed15b93a7414d8325a4f9dd5becbe9c953ef4 Разработка мобильных приложений для игорного бизнеса
Сквозь века казино остаются крайне популярными. Тысячи людей ездят в разные уголки мира, чтоб попытать удачу. Но время не стоит на месте и теперь любая игра для казино может быть в вашем смартфоне. Многие онлайн казино сейчас предлагают мобильные версии а
53931284ad675d62932e2d26457249058d87eb91 Мобильные приложения: нативные, веб и гибридные
Компании, которые думают о разработке мобильного приложения могут выбрать один из трех вариантов — нативные, веб или гибридные.
Notice Our website uses cookies, which are necessary for its functioning and required to achieve the purposes illustrated in the privacy policy. By closing this banner you agree to the use of cookies.