Ru-Board.club
← Вернуться в раздел «Программы»

» nnCron-Планировщик с поддержкой скриптового языка

Автор: Nick 2003
Дата сообщения: 25.07.2005 06:49
nnCron 1.91 Build 1058 Beta 12

Цитата:
Latest Changes:
- Memory allocation changed
- Time of focus stealing by hint window is decreased

http://www.nncron.ru/download/nncron191b12.exe
Автор: aezh
Дата сообщения: 27.07.2005 15:49

Ситуация: на прокси-сервере (W2K Prof) работает фильтр СПАМА PopFile.
Чтобы запустить его как сервис воспользовалась советом с сайта-разработчика (SYSANY и INSTSRV), а вот настроить работу этого вновьсозданного сервиса (запускается под аккаунтом System), чтобы работа фильтра (не сервиса) не прекращалась после log-off пользователя (даже с правами администратора) что-то не получается

Вот раздел из реестра HKLM\SYSTEM\cURRENT/CONTROLSET\SERVICES\PopFile\Parametres (все ключи строковые):
Код: AppDirectory ----> d:\popfile\
Application -----> d:\popfile\wperl.exe
AppParameters -----> popfile.pl
Автор: rosalin
Дата сообщения: 28.07.2005 07:59
Подскажите как должна выглядеть задача

"Если существует интернет соединение но нет пинга класть трубку "

Это нужно потомучто иногда подвисает интернет соединение и нужен переконнект

Добавлено:

Код: #( ping
NoActive
Rule: HOST-EXIST: "www.wplus.ru" NOT
Action:
HANGUP: "WebPlus"
)#
Автор: DJ makrus
Дата сообщения: 28.07.2005 08:44
rosalin
Цитата:
Это не срабатывает
причина думаю в этом:
Цитата:
NoActive


aezh
попробуй убрать: RunOnce и
Цитата:
Time: 12 15 27 7 * 2005
Автор: rosalin
Дата сообщения: 28.07.2005 09:55
DJ makrus
нет NoActive это мой коментарий отключил задачу
мне кажеться причина в тайм ауте
Автор: aezh
Дата сообщения: 28.07.2005 10:01
DJ makrus

Цитата:
попробуй убрать: RunOnce и
Цитата:
Time: 12 15 27 7 * 2005

Теперь так:
Код: #( PopFile
User: "XXX" SecPassword: "XXX" Domain: "XXX" LogonNetwork
WatchLogoff: "*"
Rule: PROC-EXIST: "wperl.exe" NOT
Action:
StartIn: "D:\POPFile"
ShowNormal NormalPriority
AsService
START-APP: D:\POPFile\wperl.exe popfile.pl
)#
Автор: rosalin
Дата сообщения: 28.07.2005 10:43
Решил пока потестить вот так


Код: #( test_ping
5000 TO PING-TIMEOUT
Action:
HOST-EXIST: "www.wplus.ru"
IF
HINT-POS: 1450 1145 HINT-SIZE: 90 25
THINT: "Пингуеться" 3

ELSE
HANGUP: "WebPlus"
THEN
)#
Автор: DJ makrus
Дата сообщения: 28.07.2005 12:56
rosalin
Цитата:
нет NoActive это мой коментарий отключил задачу
ну так поэтому и
Цитата:
Это не срабатывает

Ты бы уточнил что не срабатывает: сама задача или действия в задаче. Что именно не выполняется?

Если нет никаких особых причин разрывать именно RAS-соединение "WebPlas", то, IMHO, лучше
Цитата:
HANGUP: "WebPlus"
заменить на HANGUP. Еще могу посоветовать проверять пинг не по одному хосту, а хотя бы по паре - на тот случай если первый в дауне.

aezh
Условие
Цитата:
Rule: PROC-EXIST: "wperl.exe" NOT
перенеси внутрь задачи представив в виде конструкции из IF ... ELSE ... THEN и перед проверкой этого условия добавь паузу секунд на 30 (более точное значение подберешь потом). Твоя задача в ее теперешнем виде может не срабатывать по следующей, IMHO, причине: когда начинается разлогинивание и срабатывает первое условие
Цитата:
WatchLogoff: "*"
то очень возможно, что процесс "wperl.exe" еще не завершился и соответственно второе условие на запуск задачи не возвращает логическую единицу -> задача не запускается.
И посмотри логи: запускается или нет твоя задача.
Автор: rosalin
Дата сообщения: 28.07.2005 13:10
DJ makrus

Код: Time: */5 * * * * *
Rule: ONLINE?
Action:
HOST-EXIST: "www.wplus.ru"
IF
HINT-POS: 1450 1145 HINT-SIZE: 90 25
THINT: "Пингуеться" 3

ELSE
HANGUP: "WebPlus"
THEN
Автор: aezh
Дата сообщения: 28.07.2005 13:48
Спасибо,DJ makrus, за поддержку. Вопреки моим ожиданиям, задача запустилась

Код: #( PopFile
User: "XXX" SecPassword: "XXX" Domain: "XXX" LogonNetwork
WatchLogoff: "*"
Rule: PROC-EXIST: "wperl.exe" NOT
Action:
StartIn: "D:\POPFile"
ShowNormal NormalPriority
AsService
START-APP: D:\POPFile\wperl.exe popfile.pl
)#
Автор: DJ makrus
Дата сообщения: 28.07.2005 13:53
rosalin

Цитата:
Иногда ping из задачи почему то не срабатывает
хотя реально он есть

Если канал забит соединениями разных программ (менеджеры закачки и FTP-клиенты поддерживающие многопоточность, тем более клиентны пиринговых сетей), то HOST-EXIST: будет возвращать "0", т. к. ответ от хоста не может "пробиться" за время указанное в переменной PING-TIMEOUT следовательно при наличии хотя бы одного из процессов попадающего в вышеуказанную категорию надо увеличивать PING-TIMEOUT, конкретное значение подбери опытным путем.


Цитата:
И как можно использовать несколько хостов для пинга?


Код: HOST-EXIST: "www.mail.ru" 0=
IF
HOST-EXIST: "www.yandex.ru" 0=
IF
ONLINE?
IF
CRONTAB-ERROR
TQUERY: "Невозможно достучаться ни до www.yandex.ru, ни до www.mail.ru%crlf%Разорвать соединение?!!!" 10 Yes
IF
HANGUP
S" Невозможно достучаться ни до www.yandex.ru, ни до www.mail.ru, поэтому разорвали связь!!!" CRON-LOG
THEN
THEN
THEN
THEN
Автор: rosalin
Дата сообщения: 28.07.2005 14:20
DJ makrus

А куда лучше твой кусок кода вставить


Код: #( test_ping
5000 TO PING-TIMEOUT
Time: */5 * * * * *
Rule: ONLINE?

Action:
HOST-EXIST: "www.wplus.ru"
IF
HINT-POS: 1450 1145 HINT-SIZE: 90 25
THINT: "Пингуеться" 3

ELSE
HANGUP: "WebPlus"
THEN
)#
Автор: DJ makrus
Дата сообщения: 28.07.2005 21:01
aezh
Цитата:
Правда пришлось добавить:
а надо, IMHO, заменить, т. к. вторая задача делает то же самое что и первая, но условия запуска у нее лучше...

rosalin
Лучше не вставить мой, а привести свой к тому же алгоритму, т. е.
существует 1-ый хост? если да, то завершаем задачу, если нет, то проверяем существует ли второй хост, если да то завершаем задачу, если нет, то оповещаем об отсутствии пинга и рвем связь.
Если же вставлять, то вставить вместо:
Код: HOST-EXIST: "www.wplus.ru"
IF
...
THEN
Автор: aezh
Дата сообщения: 29.07.2005 09:41
А все же, все не так хорошо, как мне показалось
Запуск задачи:
Код: #( PopFile
User: "ХХХ" SecPassword: "XXX" Domain: "XXX" LogonNetwork
WatchLogoff: "*"
Rule: PROC-EXIST: "wperl.exe" NOT
Action:
StartIn: "D:\POPFile"
ShowNormal NormalPriority
AsService
START-APP: D:\POPFile\wperl.exe popfile.pl
)#
Автор: BOObastis
Дата сообщения: 29.07.2005 10:25
Ребята, уже целый день бьюся, но таки ничего не добился.
Задачка, вроде простая, но у меня не ничего не получается.
Задача: Выводить HINT каждые 45 минут, с момента старта крона (или logon). Не каджые 45 минут часа, а именно с момента старта крона (или logon).
И еще, в help файле не нашел никакого упоминания об операторах цикла (for, while) крон их поддерживает?
Автор: aezh
Дата сообщения: 29.07.2005 13:46
DJ makrus

Цитата:
Условие
Цитата:
Rule: PROC-EXIST: "wperl.exe" NOT
перенеси внутрь задачи представив в виде конструкции из IF ... ELSE ... THEN и перед проверкой этого условия добавь паузу секунд на 30 (более точное значение подберешь потом). Твоя задача в ее теперешнем виде может не срабатывать по следующей, IMHO, причине: когда начинается разлогинивание и срабатывает первое условие
Цитата:
WatchLogoff: "*"
то очень возможно, что процесс "wperl.exe" еще не завершился и соответственно второе условие на запуск задачи не возвращает логическую единицу -> задача не запускается.
И посмотри логи: запускается или нет твоя задача.

Извиняюсь за тупое приставание, но это подразумевается:
Код:
#( Stop_PopFile
WatchLogoff
Action:
PAUSE: 30000
IF PROC-EXIST: "wperl.exe" NOT
THEN
ShowNormal NormalPriority
START-APP: C:\WINNT\System32\netsvc.exe \\ХХХ PopFile /start
)#
Автор: BOObastis
Дата сообщения: 30.07.2005 02:07
Спасибо уже не надо сам разобрался.
Автор: DJ makrus
Дата сообщения: 30.07.2005 02:21
BOObastis, aezh - извиняйте, но сейчас нет времени (до воскресенья), если к тому времени вам здесь или в другом месте не ответят, то чем смогу - помогу.
Автор: DJ makrus
Дата сообщения: 31.07.2005 05:19
aezh

Цитата:
Не понятно, что написать в конструкции после ELSE
Прошу извинить за тупость, в хелпе как-то не освещен вопрос

Вы не правы, хелп не идеален, но ВСЕ основные вопросы объяснены и показаны на примерах..., надо только найти время, сесть и прочитать ВЕСЬ хелп. Ну, а пока не прочли его пользуйтесь в нем поиском (и не только в нем ). Хелп это второе за что мы должны благодарить разработчиков nnCron'а, первое это сам nnCron


Цитата:
Вот так, вроде бы, работает:
...
не забываем про постфиксную нотацию в Форте:

Код: #( Stop_PopFile
WatchLogoff
Action:
PAUSE: 30000
PROC-EXIST: "wperl.exe" 0= \ NOT эквивалент 0=, но рекомендуется 0=
IF \ если процесс wperl.exe отсутствует, то запускаем его
START-APP: C:\WINNT\System32\netsvc.exe \\ХХХ PopFile /start
ELSE \ если присутствует, то сообщаем об этом
MSG: "Not stopped wperl.exe"
THEN
)#
Автор: BOObastis
Дата сообщения: 01.08.2005 01:43
Я конечно дико извиняюсь, но почему не работает такая конструкция:

Код:
VARIABLE I_lamo
Action:
3 I_lamo !
THINT: "Мда..." I_lamo @
Автор: aezh
Дата сообщения: 01.08.2005 12:07
DJ makrus:

Цитата:
И еще,IMHO, строку
Код:
WatchLogoff
лучше заменить на
Код:
WatchProcStop: "wperl.exe"
тогда процесс будет перезапускаться не только при выходе пользователя, но и в случае закрытия по каким-либо другим причинам (в том числе и закрытия самим пользователем, если это исключено, то смело меняйте)

Еще раз спасибо, DJ makrus, за помощь. Все равно приходится методом "проб и ошибок" искать решение. Вот оказалось, что все-таки не WatchProcStop:, а именно Watchlogoff, так как завершение процесса wperl.exe неоднозначно свидетельствует о крахе службы/сервиса, а однозначно - именно logoff. В итоге приходится именно ПЕРЕЗАПУСКАТЬ службу/сервис PopFile:
Код: #( Stop_PopFile
WatchLogoff
Action:
PAUSE: 30000
PROC-EXIST: "wperl.exe" 0=
IF
START-APP: C:\WINNT\System32\netsvc.exe \\XXX PopFile /stop
PAUSE: 10000
START-APP: C:\WINNT\System32\netsvc.exe \\XXX PopFile /start
ELSE
TMSG: "Not stopped service PopFile" 3
THEN
)#
Автор: DJ makrus
Дата сообщения: 05.08.2005 01:16
BOObastis

Цитата:
А стараюсь прежде чем задавать вопросы, прочитать help

не обижайтесь, я и сам знаю что я зануда, но к примеру оператор WHILE в справке упоминается неоднократно

Оператор THINT: я тоже не смог заставить работать с переменными, много чего перепробовав, я сделал предположение что как и большинство других префиксных операторов, этот имеет постфиксный аналог, и я не ошибся , попробуйте вот так:
Код: S" Все знать - невозможно!" I_lamo @ THINT
Автор: aezh
Дата сообщения: 05.08.2005 10:02
DJ makrus

Цитата:
я, естественно, могу ошибаться, но мне кажется что вы немного заблуждаетесь, т. к. WatchProcStop: и Watchlogoff указывают только когда запускать данную задачу, а непосредственно перезапуск службы происходит только в том случае если отсутствует процесс wperl.exe, и не важно как он завершился - нормально или вследствии краха. Если есть желание разобраться и возможно улучшить задачу, то опишите, пожалуйста, на основании чего вы пришли к мнению которое я процитировал.
И еще вопрос, первоначальный запук этой службы (после старта компьютера) производится от имени какого-то пользователя, затем вы разлогиниваетесь (что бы компьютер работал без пользователя), или залогинивается другой пользователь и вам приходится перезапускать службу? Я правильно понял?

На основании вот чего: в списке служб, у службы (PopFile), которая перестает работать после логоффа, состояние Работает. А что она не работает, понимаю, когда пытаюсь просмотреть в WEB-интерфейсе (http://сервер со службой:333/) результаты ее работы. Получаю окно с ошибкой "Не удалось подключиться к удаленному серверу httр://сервер со службой:333/history?session=3Id5VlzZ43"

Поняли про последовательность логонов и перезапуск службы Вы не совсем правильно, из-за того что я не совсем ясно обрисовала ситуацию. Служба стартует от имени SYSTEM, а вот после логофа ее состояние в списке сервисов -Работает. Но НЕ работает она, вот и приходиться эту службу перезапускать.

С PAUSE более-менее поняла, спасибо.
Автор: DJ makrus
Дата сообщения: 05.08.2005 17:49
aezh
Ну, более-менее понятно , еще один, возможно последний, вопрос:
- после логоффа процесс wperl.exe присутствует или он завершается (неважно нормальным или нет образом)?
Автор: aezh
Дата сообщения: 07.08.2005 12:52
DJ makrus

Цитата:
- после логоффа процесс wperl.exe присутствует или он завершается (неважно нормальным или нет образом)?

К сожалению, не знаю, как посмотреть удаленно, присутствует ли он в списке процессов
Автор: DJ makrus
Дата сообщения: 09.08.2005 01:01
aezh
В принципе последний вопрос был скорее риторическим.
Дело в том что если у вас работает задача:
Код: #( Stop_PopFile
WatchLogoff
Action:
PAUSE: 30000
PROC-EXIST: "wperl.exe" 0=
IF
START-APP: C:\WINNT\System32\netsvc.exe \\XXX PopFile /stop
PAUSE: 10000
START-APP: C:\WINNT\System32\netsvc.exe \\XXX PopFile /start
ELSE
TMSG: "Not stopped service PopFile" 3
THEN
)#
Автор: aezh
Дата сообщения: 09.08.2005 14:15
DJ makrus, спасибо Вам за проявленное желание помочь. Задачка решена автором PopFile, он в новой версии программы исключил "ненормальное" завершение ее работы при логоффе пользователя в системе Windows. Рабочий модуль теперь даже называется по-другому (runpopfile.exe) и не нужно контролировать логофф.
Автор: SpONsOr272
Дата сообщения: 09.08.2005 14:16
 
Автор: xCedz
Дата сообщения: 10.08.2005 13:59
русский хелп- ошибка в crc данных. Есть у кого нормальный help
Автор: DiggER
Дата сообщения: 17.08.2005 11:27
xCedz http://www.nncron.ru/download/help_ru.zip

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

Предыдущая тема: Как писать кириллицей, а НЕ латиницей (транслитом)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.