Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Сетевые технологии > Регистрация изменения файла на файловом сервере


Автор: Nuzur 22.12.2006, 11:44
Здравствуйте, возникла задача запуска приложения при изменении определенной паки либо файла в папке. Что-то в духе сигнализации.

Надеюсь вопрос в данную ветку.
Спасибо за ответы, либо указания направления куда копать.

Автор: DENNN 22.12.2006, 12:09
ОС ? Способ доступа к фалу на сервер? Телепатизм? Чтение мыслей? smile

Автор: Nuzur 22.12.2006, 17:59
DENNN, да дейсвительно виноват. На сервере винда 2003 Сервер smile
Способ доступа точно не скажу smile
Телепатизма ненадо наверно, просто затупил smile

Автор: Nuzur 10.1.2007, 16:54
Неужто никто не подскажет? Задача то вроде тривиальна? Там же должен быть мониторинг какой-то для винды. Ведь там и теневое копироввание и все такое  smile 

Автор: DENNN 10.1.2007, 17:12
В свойствах папки есть закладка "Аудит"

Добавлено @ 17:13 
в разделе Security->Advanced

Автор: Nuzur 11.1.2007, 18:16
Да спасибо я уже нашел, но проблема остается такая что при изменении мне нужно запустить скрипт, как ето сделать?
Тоесть там идет логирование, а мне нужен не просто лог а реакция на изменения сторонней софтинушки smile

Автор: Nuzur 12.1.2007, 14:07
Можно даже сторонними софтинами, оч. надо smile

Автор: DENNN 12.1.2007, 15:12
Передо мной такую задачу никогда не ставили. Попробуй, посмотри как штатный аудитинг работает. Если там есть настройки логгирования, то можно изх своей софтины следить за появлением новыъ записей в указанном логе и парсить их.

Автор: Nuzur 22.1.2007, 18:44
DENNN, с таким же успехом я могу и за файлами следить :*( Блин, народ, ну должно же быть такое!

Автор: dumb 22.1.2007, 21:58
Nuzur, http://nncron.ru/. мощь оценишь в процессе использования... smile

Автор: DENNN 22.1.2007, 23:28
dumb, 
Это ничего не даст, т.к. нужен признак по которому можно очень быстро найти какой файл запускался/изменялся, либо информация из другого источника.


Nuzur, в WinAPI есть методы, позволяющие узнать, что изменилось содержимое конкретной папки (именно так проводник обновляет содержимое своего окна при добавлении/удалении/... сторонней программой). Поспрашивай в разделе C++, сам я уже от низкоуровнего программинга отошел, но там народ быстро наведет на нужное направление и раздел в MSDN.

Автор: dumb 23.1.2007, 00:00
Цитата(DENNN @  22.1.2007,  23:28 Найти цитируемый пост)
Это ничего не даст, т.к. нужен признак по которому можно очень быстро найти какой файл запускался/изменялся

звучит обескураживающе. но непонятно, что ты хотел этим сказать. т.е. вообще смысл фразы ускользает...

функции, отслеживающие изменения - FindFirstChangeNotification/ReadDirectoryChangesW, и именно их(точнее только первую) nnCron и использует для отслеживания изменений.

Автор: DENNN 23.1.2007, 12:12
Цитата(dumb @  23.1.2007,  00:00 Найти цитируемый пост)
т.е. вообще смысл фразы ускользает...

Это значит, что к примеру ты посчитал CRC для всех фалов в паке и подпаках. В следующий момент времени нужно опять найти эти суммы и сравнить их с контрольными Когда у тебя 100-200 гиг данных........

Автор: LSD 23.1.2007, 13:08
Включаешь аудит для папки, затем с помощью eventtriggers вешаешь триггер на событие аудита.

Автор: dumb 23.1.2007, 14:36
Цитата(DENNN @  23.1.2007,  12:12 Найти цитируемый пост)
Это значит, что к примеру ты посчитал CRC для всех фалов в паке и подпаках.

к чему все это? - вот чего я не понимаю.

был вопрос:
Цитата(Nuzur @  22.12.2006,  11:44 Найти цитируемый пост)
Здравствуйте, возникла задача запуска приложения при изменении определенной паки либо файла в папке.

где тут слова о выяснении какой файл изменился в папке - я не вижу. nnCron ставит FindFirstChangeNotification на папку/файл, получает уведомление от системы и запускает что-либо. какие CRC, какие сравнения?!.. ниче не понимаю.. user posted image

Автор: Nuzur 6.2.2007, 17:19
Задача уже трохи поменялась теперь следить нуна и за тем что файл открылся,Ну бум рассматривать сие как подзадачу smile

DENNN, Я сам С++ программист, но "людского" решения без "за что уволят" не вижу, нужны внутренние средства самой ОС иначе через каждую сикунду зырить на папку из проги. Проц не загрузит но за такое решение мне будет нужен вазелин.

dumb,  nnCron да действительно работает. Но не может отследить открытие файла smile
Вам плюс, спасибо большое. Если можете что-то сказать про открытие файла буду очень рад.

LSD, И к вам тоже просьба шаг за шагом, как можно подробнее, просто я сейчас болею и немного туго соображаю smile или не из-за того что болею, лана просьба очень большая, очень нада, блАгодарность не будет иметь границ в разумных приделах.
Поднял аудит но не нашел там никаких триггеров smile покурил мелкомягких и ничего не понял, тоесть нашел про них, но как приминить не понял, пример бы вообще не помешал ниразу smile

Жду ответа с нетерпением.
ЗЫ ну и смайлов посте каряуль.

Автор: Aleksiem 7.2.2007, 02:42
Не проще с помощью cacls выставить такие права, что те кому не надо открывать файл вообще не смогут его открыть, или задача именно в том чтоб они смогли открыть и это надо засечь и запустить программу...

Автор: Nuzur 7.2.2007, 10:34
Aleksiem, 
Цитата

Что-то в духе сигнализации.

Тогда сие будет сейф smile Нет ваш вариант мне не подходит.

Автор: dumb 7.2.2007, 15:03
если нужно отслеживать "открытие", то тут есть пара вариантов(оба "ручные"):

1. аудит доступа(уже был озвучен). разве что eventtriggers тут не особо поможет, так как ориентирован он на, скажем так, "одиночные" события, а наш аудит будет их пачками сыпать. поэтому надо писать свое(OpenEventLog + NotifyChangeEventLog + ReadEventLog) и отфильтровывать то, что нужно. аудита "открытия" нету, поэтому ориентироваться придется на "чтение", со всеми отсюда вытекающими(отлов первичного обращение, игнор кучи последующих, итд).

2. более простым вариантом представляется использование NetFileEnum(результат работы можно увидеть, забив в cmd 'net file'). тут все довольно дубово и прозаично - никаких уведомлений нету, поэтому просто вызов этой функции по таймеру. думаю, что примеры использования можно без проблем найти тут(на форуме) поиском(либо в гугле). есть, кстати, готовые программы, использующие данный мех-м, но у них, afair, нет "запуска чего-либо"... killprog.com, friendly pinger(вроде)...

Автор: Nuzur 7.2.2007, 18:54
dumb, да, боюсь чем-то подобным и прийдеться заняться а ведь так не хочеццо  smile 

Автор: MuToGeN 7.2.2007, 21:31
Возможно, стоит посмотреть в сторону альтернативных методов хранения данных / неких надстроек над стандартными файловыми системами?

Автор: Nuzur 8.2.2007, 11:53
MuToGeN, а куда копать в ету сторону хоть я не думаю что такой вариант подойдет но уже времени нет

Добавлено @ 11:56 
Да кстати, вопрос не в тему, но где можно порсмотреть лог аудита ?

Автор: LSD 8.2.2007, 12:38
Цитата(Nuzur @  8.2.2007,  11:53 Найти цитируемый пост)
Да кстати, вопрос не в тему, но где можно порсмотреть лог аудита ?

Administrative Tools\Event Viewer\Security

Автор: dumb 8.2.2007, 13:38
на всякий случай опишу установку аудита:

1. пуск-выполнить: gpedit.msc
Код

Computer configuration(Конфигурация компьютера)
 Windows Settings(Конфигурация Windows)
  Security Settings(Параметры безопасности)
   Local policies(Локальные политики)
    Audit policy(Политика аудита) - Audit object access(Аудит доступа к объектам): Success(Успех)


2. правый клик на нужной папке - 
Properties(Свойства), закладка Security(Безопасность) - Advanced(Дополнительно) - Auditing(Аудит) - Add...(Добавить...): Everyone(Все), в диалоге установки разрешений в поле Apply onto(Применять) выбрать "Files only"(Только для файлов), поставить галку на "List folder/Read data"("Содержание папки/Чтение данных").

Автор: SMN 10.2.2007, 09:51
Есть такая прога KillWatcher, отслеживает подключения, кто куда заходил, что смотрел, сколько смотрел итд... Только вот что изменилось не показывает, хотя в новой версии может уже есть такая функция...

Если нужна сигналка, ставишь сигнал на момент подключения и комп орет как угорелый   smile 

Автор: Nuzur 14.2.2007, 18:57
SMN, мне не до смеха.
За прогу спасибо, посмотрю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)