The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Выполнение действия при изменении или создании файла в Linux
Утилита inotifywait из состава пакета inotify-tools позволяет организовать выполнение 
определенного действия в shell скрипте, при изменении, создании, удалении,
перемещении и выполнении
других операций с файлами.

Выполняем программу при появлении нового файла в директории

   inotifywait -e create /home/ftp/incoming --format "%w%f" -q -m| while read file; do
     clamscan $file
  done

Для отслеживания изменений вместо create можно использовать modify, удаления -
delete, перемещения - move и т.п.
 
28.08.2009
Раздел:    Корень / Программисту и web-разработчику / Shell / Готовые скрипты

Обсуждение [ RSS ]
 
  • 1.1, pavlinux, 20:24, 28/08/2009 [ответить] [смотреть все]
  • +/
    На одной консольке делаю
    # inotifywait -e modify /tmp --format "%w%f" -q -m | while read file; do clamscan $file; done;

    на другой
    # > /tmp/test
    # dd if=/dev/urandom of=/tmp/test count=1024 bs=100

    clamav проверяет этот файл бесконечно.

    Далее:

    # dd if=/dev/urandom of=/tmp/test1 count=1024 bs=100
    # dd if=/dev/urandom of=/tmp/test2 count=1024 bs=100
    # dd if=/dev/urandom of=/tmp/test3 count=1024 bs=100

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


    inotifywait -e create - нормально.

     
     
  • 2.2, vkshlu, 18:16, 29/08/2009 [^] [ответить] [смотреть все]
  • +/
    меняется atime на файле при каждой проверке кламом ?
     
     
  • 3.3, pavlinux, 19:10, 29/08/2009 [^] [ответить] [смотреть все]
  • +/
    неа! :-|

    Тока так


    x=0; inotifywait -e modify /tmp --format "%w%f" -q -m | while read i; do if [ "$x" -eq 0 ]; then clamscan $i; ((x++)); fi; done;


    Забавные результаты:

    # x=0; inotifywait -e modify /tmp --format "%w%f" -q -m | while read i; do ((x++)); echo "COUNT = $x "; done;  
    # dd if=/dev/urandom of=/tmp/test count=1 bs=1

    выдаёт
    COUNT = 1
    COUNT = 2

    # dd if=/dev/urandom of=/tmp/test count=1 bs=100
    COUNT = 1
    COUNT = 2

    # dd if=/dev/urandom of=/tmp/test count=100 bs=1
    COUNT = 1
    COUNT = 2
    ...
    ...
    COUNT = 100
    COUNT = 101

    # dd if=/dev/urandom of=/tmp/test count=100 bs=1
    COUNT = 1
    COUNT = 2
    ...
    ...
    COUNT = 33
    COUNT = 34


    Ну в общем ясно, dd использует write() count раз, а COUNT - это сколько inotifywait успеет поймать, и ждет пока тело while отработает.

    Так что, лучше наверно использовать inotifywait -e close

     
  • 1.4, Добрый Дохтур, 21:31, 30/08/2009 [ответить] [смотреть все]
  • +/
    ох, лисапедисты... есть же icron(inotify cron)
     
     
  • 2.5, pavlinux, 15:09, 31/08/2009 [^] [ответить] [смотреть все]
  • +/
    А еще был SGI FAM.
     
  • 1.6, bliss, 23:19, 01/09/2009 [ответить] [смотреть все]  
  • +/
    Есть перловая утила -- iwatch. Мне в ней неудобен конфиг -- в xml файле. На мой взгляд, xml для такого перебор. Начал переписывать под свои нужды, для поддержки самбы.
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList