The OpenNET Project
 
Поиск (ключи):  ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
ССЫЛКИ НОВОСТИ (+) 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 и т.п.
 
Раздел:    Корень / Программисту и web-разработчику / Shell / Готовые скрипты

Обсуждение [ RSS ]
 
  • Выполнение действия при изменении или со, pavlinux, 20:24, 28/08/2009 [ответить] (1)
  • +/
    На одной консольке делаю
    # 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 - нормально.


     
  • Выполнение действия при изменении или со, vkshlu, 18:16, 29/08/2009 [ответить] (2)
  • +/
    меняется atime на файле при каждой проверке кламом ?

     
  • Выполнение действия при изменении или со, pavlinux, 19:10, 29/08/2009 [ответить] (3)
  • +/
    неа! :-|

    Тока так


    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


  • Выполнение действия при изменении или со, Добрый Дохтур, 21:31, 30/08/2009 [ответить] (4)
  • +/
    ох, лисапедисты... есть же icron(inotify cron)

     
  • Выполнение действия при изменении или со, pavlinux, 15:09, 31/08/2009 [ответить] (5)
  • +/
    А еще был SGI FAM.

  • Выполнение действия при изменении или со, bliss, 23:19, 01/09/2009 [ответить] (6
  • +/
    Есть перловая утила -- iwatch. Мне в ней неудобен конфиг -- в xml файле. На мой взгляд, xml для такого перебор. Начал переписывать под свои нужды, для поддержки самбы.


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

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

    Последние заметки
    - 18.03 Увеличение скорости работы графического интерфейса Qt4 приложений
    - 17.03 Упрощение тестирования экспериментальных версий Ubuntu при помощи TestDrive
    - 16.03 Создание масштабируемого хранилища с использованием WD MyBook NAS + FreeBSD + ZFS
    - 15.03 Наблюдение за трафиком на удаленном хосте через GUI-интерфейс Wireshark
    - 12.03 Организация приема SNMP trap’ов и их отправки на коммутаторах DLink
    - 11.03 Создание шаблонов блоков конфигурации samba при помощи опции "copy"
    - 10.03 Включение и настройка LLDP на коммутаторах Linksys / Cisco серий SPS и SRW средствами SNMP
    - 09.03 Использование протокола CDP (Cisco Discovery Protocol) в Linux
    - 08.03 Решение проблемы с индексацией данных в связке Samba и LDAP
    - 04.03 Превращение Cisco Catalyst 6500 в кабельный тестер
    RSS | Следующие 15 записей >>


    Подпишись на Linux Format и получи один из 3 ценных призов!

    Началась подписка на журнал Linux Format на 2010 год. Спешите оформить подписку на единственный в России ежемесячный журнал о Linux!

    Все, оформившие подписку на печатную версию журнала, получают диск с архивом журнала Linux Format за 2005-2009г. в подарок. Также в подарок вы получаете именную электронную версию в формате PDF. Теперь вы можете приступить к чтению журнала сразу в момент выхода свежего номера, не дожидаясь, пока вам доставят бумажную версию.

    Кроме того, все, оформившие подписку на первую половину или весь 2010 год в интернет-магазине ГНУ/Линуксцентра, автоматически становятся участниками розыгрыша ценных призов:


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