| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Администрирование *NIX систем > Отслеживание изменений в файлах и каталогах |
| Автор: Imple 11.10.2007, 09:29 | ||||||||||
| Отслеживание изменений в файлах и каталогах Нередко появляется необходимость выполнить какое-либо действие при изменении произвольноко файла или каталога. Это может быть очень полезно во многих случаях, например:
Inotify - система отслеживания изменений файлов, предоставляемая ядром Linux в замен устаревшей системы dnotify, начиная с версии 2.6.13. К примеру, ее активно использует Beagle - система поиска для Linux. С помощью inotify, можно отслеживать следующие события:
Если опция была отключена, необходимо собрать и переустановить ядро, но это тема для отдельной статьи Использовать систему можно через Inotify API, подробности о которой можно узнать вызвав соответствующию man-страницу
Либо, что гораздо проще, использовать пакет inotify-tools, последнию версию которого можно получить с http://inotify-tools.sourceforge.net/ Использование inotify-tools Пакет состоит из двух консольных утилит: inotifywait - ждет указанных событий над определенным файлом, и завершается при их удовлетворении. Удобно для использования внутри shell-скриптов. inotifywatch - мониторит определенные события над указаными файлами определенное время, затем выводит статистику по действиям, которые ОС совершала с данным файлом. Это может быть очень полезно при отладке различного ПО. Более подробную информацию по данным утилитам, вы можете получить обратившись к соответствующим man-страницам:
Простой пример, выводящий сообщение при появлении в /var/log/messages слова "error":
Другой пример использования inotifywatch - сканирование каталога на наличе вирусов при появлении в нем новых файлов:
Возможности использования данной системы безграничны, особенно если работать с ней на прямую через Inotify API. Для любителей языков Perl и Python есть модули http://search.cpan.org/author/TWERNER/Linux-Inotify-0.05/lib/Linux/Inotify.pm и http://rudd-o.com/projects/python-inotify/ соответсвенно. |
| Автор: JackYF 11.10.2007, 16:12 |
| Отличная статья, самому не раз нужно было делать подобные вещи. |
| Автор: spin2 14.10.2007, 15:12 |
| Еще есть tripwire. |
| Автор: ZeeLax 15.10.2007, 13:59 |
| spin2, у tripware другая цель. |
| Автор: bilbobagginz 19.10.2007, 12:37 |
| спасибо, Imple ;-) +1 |