Имя: Пароль:
IT
Админ
Настройка планировщика Windows, чтоб срабатывал при изменении файла хранилища
0 Armando
 
20.06.14
00:56
Как настроить планировщик Windows Server 2008, чтоб при изменении файла запускался скрипт? Он такое умеет?
1 Вазелин
 
20.06.14
02:00
(0) нет
2 Вазелин
 
20.06.14
02:00
(0) + как вариант сделать ватник.
3 ildary
 
20.06.14
07:29
(0) берется autoit, в нем пишется процедурка, компилируется exe, ссылка на него кладется в autorun.
4 Галахад
 
гуру
20.06.14
07:54
А проверять. С переодичностью 1-5 минут. Или нужен он-лайн?
5 PaulBC
 
20.06.14
08:19
(0) Назначаешь аудит доступа к файлу. В задаче планировщика настраиваешь триггер на событие.
6 vlandev
 
20.06.14
08:50
(0) Если суть скрипта состоит в копировании чего-то куда-то то можно воспользоваться утилитой robocopy , там есть вотчер по событиям изменений в каталоге.
7 Armando
 
20.06.14
15:43
(3) Это и WMI можно, много чем.
(5) Спасибо, это получилось. В журнале генерится событие. Вешаю на это событие задачу. Как в задаче указать, что при изменении именно этого файла. Ибо срабатывать будет при изменении любого файла, на котором висит событие.
(6) Нет, не копирование.
8 Armando
 
20.06.14
16:00
+(7) там вроде надо корректный xpath запрос сваять. буду думать
9 Armando
 
20.06.14
16:26
Получилось. Кому интересно:

<QueryList>
  <Query Id="0" Path="Security">
    <Select Path="Security">*[System[Provider[@Name='Microsoft-Windows-Security-Auditing'] and Task = 12800 and (EventID=4663)] and EventData[Data[@Name='ObjectName'] and (Data='ПолныйПутьФайла')]]</Select>
  </Query>
</QueryList>
10 pumbaEO
 
20.06.14
17:05
(0) раз в 5 минут разве недостаточно проверять на 1cd ?
У тебя на любом захвате будет ложное срабатывание.
11 Armando
 
20.06.14
19:01
(10) Про захваты и отмены я потом догадался(
По событию кошерней было бы. Почему-то если с хранилищем работаешь через сервис, то в журнале не появляются записи с нужным EventID. Либо я что-то не так делаю. Но на тестовых текстовых файлах все срабатывает на ура.
12 Armando
 
20.06.14
20:04
Либо виндовый аудит так работает, либо хранилище такой странный предмет. Если с файлом 1cv8ddb.1CD что-то интерактивно делаешь, даже просто свойства смотришь, то все прекрасно логается. Если из 1С захватываешь объекты, помещаешь объекты, то эти события практически не логаются, хотя видно как меняется время и размер файла хранилища.
13 Armando
 
20.06.14
20:09
Кстати в 20.00 прошел бекап сервера, по логам видно, что было обращение к файлу.
Кто в курсе, что там происходит? Почему в логах Windows нет событий обращения от crserver?
14 pumbaEO
 
20.06.14
22:39
(13) тоже такое заметил. Как захватил файл, так его и держит.

Поэтому я проверяю размер файла, ну скорей jenkins проверяет его размеры и считает md5 для базы и только потом определяет изменился или нет.
15 Armando
 
20.06.14
23:49
Кто такой jenkins? Гуглится мужик усатый какой-то. Что он делает?
16 pumbaEO
 
20.06.14
23:58
(15) build server
17 Armando
 
21.06.14
15:38
Вот что придумал:
1. WMI говорит, что файл хранилища изменился
2. Tool1CD выгружает таблицу Versions
3. Сравнивается время изменения файла со временем последнего коммита +- несколько секунд. Пока что заметил разницу в 5 секунд.
4. ???
5. profit

Жаль, что с планировщиком не получается(
18 Armando
 
21.06.14
22:42
Можно еще жестче
http://msdn.microsoft.com/en-us/library/aa392282(v=vs.85).aspx
здесь описано как регать свои события в журнал.
Пишем некий mof файл, компилируем.
При изменении нужного файла будет создаваться запись журнале. А на это событие можно повесить планировщик, который будет пинать скрипт.