Форум русскоязычного сообщества Ubuntu


Автор Тема: [РЕШЕНО] действия при изменении файла/папки  (Прочитано 1489 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
название топика ни о чем, поробую объяснить как сумею.
в общем, требо, чтобы при изменении файла или папки (помещение/удаление файлов в оной) выполнялось заданное действие. поправил/удалил/переименовал файл - выполнилось что-нибудь, закинул в папку новое файло - выполнилось. надеюсь, понятно изложил. примеров использования можно придумать массу, интересна собственно реализация. есть что-нибудь эдакое или проще самому написать скрипт, который будет висеть в фоне и раз в N секунд мониторить mtime у файлов?

РЕШЕНИЕ: см. 4-й пост
« Последнее редактирование: 02 Сентября 2010, 20:22:35 от dimas000 »
лучше на "ты"

Оффлайн фирэфохэ

  • Старожил
  • *
  • Сообщений: 2169
  • straightedge
    • Просмотр профиля
Re: действия при изменении файла/папки
« Ответ #1 : 24 Августа 2010, 18:45:13 »
есть что-нибудь эдакое
incron вроде.
http://i18.ЗАПРЕЩЁННЫЙ РЕСУРС/big/2011/0325/6d/19eaa72dd24048a6fb0587832c4b096d.gif КДЕ - УГ. Дебиан - недоось.

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: действия при изменении файла/папки
« Ответ #2 : 24 Августа 2010, 19:19:16 »
точно, судя по описаню, оно. спасибо, буду изучать!
лучше на "ты"

Оффлайн dimas000

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1437
  • Ubuntu 9.10 @ 2.6.34
    • Просмотр профиля
Re: [РЕШЕНО] действия при изменении файла/папки
« Ответ #3 : 02 Сентября 2010, 20:19:37 »
осилил. решение:
ставим
sudo aptitude update && sudo aptitude install incronудаляем файл /etc/incron.allow (или вносим туда тех, кому можно юзать, один юзернейм на одну строку)
читаем
man incrond
man incron.conf
man incrontab
просветились... а вот как составить сам файл с заданиями что-то неясно. а вот тут немного неочевидно)) разгадка:
man 5 incrontabтам расписано понятно и с примерами. типы событий перечисляются через запятую. да, избегайте использования IN_ALL_EVENTS, т.к. оный срабатывает даже на простой вход в заданную папку, не говоря уже об обращении к файлам.
более того, об этом уже сказано в мануале, но все же повторюсь: избегайте вызова по событию команд, вызывающих то же событие (например, когда при обращении к файлу происходит сканирование всех файлов, т.е. опять обращение к файлам), ибо это есть ничто иное как бесконечный цикл, я так только что подвесил сервак напрочь :)
и вот еще что: на одно событие - одна команда, всякие "что-то && что-то еще" не катят, пишите простенький скрипт из двух команд. да, если скрипт лежит в домашней папке, путь надо указывать абсолютный, ~ или $HOME не канают.
для примера привожу свой incrontab (он невелик):
/media/svalka/music IN_MODIFY,IN_CREATE,IN_DELETE,IN_MOVE /home/srv/.bin/reloadshares(все вместе вызывает обновление шары в museekd при изменениях в расшаренной папке)
вот, в общем-то, и все, остальное просто и доступно расписано в вышупомянутых манах
лучше на "ты"

 

Страница сгенерирована за 0.043 секунд. Запросов: 23.