Inotify Этот Учебник Inotify удобный модуль ядра следит
за вашей файловой системой, как ястреб
Inotify: Следим за Коэн Вервлоесем любит контролировать события в своей файловой системе. Благодаря Inotify он не упускает ни единого изменения файлов. Просвети меня!
Inotify-tools 3.14
Наш эксперт Коэн Вервлоесем работает в свободном ПО с 2000 года – ему нравится, что в Linuxвсе является файлом.
Е
сть немало случаев, когда вам нужно бы знать, что творится в неком каталоге. Нуж да – мать изобретений, и последние версии дистрибутивов Linux изобрели для этой цели мно жество инструментов. Например, если вы откроете свой каталог Pictures в Dolphin при импорте фотографий с цифровой камеры в Digikam, новые файлы тут же отобразятся в окне Dolphin. Утилиты рабочего стола для поиска используют данную функцию для
Ubuntu, как и все современные дистрибутивы Linux, поддержива ет Inotify из коробки.
80 LXF139/140 Январь 2011
Если вы используете inotifywatch, inotifywait или другой инструмент Inotify на большом дереве каталогов, например /, вы скоро превыси те стандартный лимит на число просмотров Inotify, потому что Inotify должен создать один просмотр на подкаталог. К счастью, эти инстру менты выдают подробное сообщение об ошибке, и они скаж ут вам, что делать: увеличьте отведенное на пользователя число просмот ров Inotify, которое находится в файле /proc/sys/fs/inotify/max_user_ watches. Взгляните на значение по умолчанию этого параметра ядра и повысьте его, если требуется: # cat /proc/sys/fs/inotify/max_user_watches 8192 # echo 32768 > /proc/sys/fs/inotify/max_user_watches # cat /proc/sys/fs/inotify/max_user_watches 32768 Теперь наблюдайте себе хоть за всей файловой системой. Однако эта настройка не переживет перезагрузки дистрибутива Linux. При желании сделать данный параметр ядра постоянным, до бавьте в /etc/sysctl.conf так ую строк у: fs.inotify.max_user_watches = 32768 Или, если в вашем дистрибутиве нет /etc/sysctl.conf, добавьте сле дующ ую строк у в /etc/rc.local, до строки, содержащей exit 0: echo 32768 > /proc/sys/fs/inotify/max_user_watches
переиндексирования измененных файлов – чтобы ежеминутно не сканировать изменения файловой системы. А если такая функ ция требуется, скажем, в ваших скриптах оболочки? Благода ря мод улю ядра Linux по имени Inotify получить ее не слишком сложно, что мы и докажем на данном уроке. Мы рассмотрим ра бот у Inotify и его возможности, а также способ легко добавить его на панель инструментов.
Под капотом Inotify – компонент, обеспечивающий мониторинг различных изменений файлов в файловых системах; он входит в ядро Linux, начиная с версии 2.6.13. Inotify позволяет следить за одним или несколькими файлами или каталогами на предмет со бытий из указанного набора: открытие файла или папки; чтение, модификация или изменение атрибутов (например, метки или разрешения) открытого файла; закрытие, перемещение, соз дание или удаление файла. В таблице на стр. 83 все эти события перечислены. Вы можете использовать Inotify для целого ряда задач: вы явить изменения в файлах и каталогах (например, в файле на стройки или почтовом каталоге), автоматически восстановить удаленные критически важные файлы настройки, отправить вам по почте сообщение, когда файл загружается в конкретных ката логах на web-сервере, и так далее. Без Inotify ваша программа или скрипт должны буд ут проверять файлы периодически (такой об раз дейс тв ий наз ыв ае тс я «опр ос» [polling]) – это очень медл енн о и торм оз ит раб от у всей сист ем ы. С Inotify ядр о увед ом ляе т прог рамм у по каж д ом у указ анн ом у соб ыт ию. Inotify даже