Обсуждение программ nnCron и nnCron LITE
by digi503 » Fri, 14 Mar 2014, 17:08
Подскажите как реализовать данное действие? Имеем nnCron и программу которую он запускает. Программа запускаемая Кроном пишет свой собственный лог файл в формате txt. Необходимо сделать так, чтобы Крон просматривал этот log.txt и при обнаружении несоответствия изначально записанным требованиям отправлял программу на перезапуск с небольшой паузой. Видится этот процесс так: указываем Крону за каким значением (или несколькими значениями) следить, например значение "download *********from11" (где **** любой текст или значение которые игнорируются) и запускаем программу. Программа пишет следующий лог 11:15 programm starts 11:16 downloading ******* 1from18 11:16 uploading ******* 1from18 11:19 downloading ******* 2from18 11:19 uploading ******* 2from18 11:23 downloading ******* 3from18 11:23 uploading ******* 3from18 11:28 downloading ******* 4from11 - (это наше значение указанное для перезапуска) 11:30 программа "KILL", PAUSE перед повторным запуском 2 секунды 11:32 programm starts 11:35 download ******* 4from18 и т.д.
-
digi503
-
- Posts: 1
- Joined: Fri, 14 Mar 2014, 16:32
by VoidVolker » Fri, 14 Mar 2014, 20:32
- Code: Select all
#( Задача_212614032014 SingleInstance WatchFile: "C:\path\file.txt" Action: S" C:\path\file.txt" FILE S" /.*download.*?from11.*/" RE-MATCH IF S" programm.exe" KILL S" C:\path\file.txt" FDELETE 2000 PAUSE S" programm.exe" START-APP THEN )#
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by Digi502 » Fri, 14 Mar 2014, 21:52
Спасибо за ответ. Подскажите пожалуйста еще как реализовать такие же действия, но при условии, что известно только текущее значение, а при наступлении любого другого происходила бы перезагрузка. 11:15 programm starts 11:16 downloading ******* 1from18 11:16 uploading ******* 1from18 11:19 downloading ******* 2from18 11:19 uploading ******* 2from18 11:23 downloading ******* 3from18 11:23 uploading ******* 3from18 11:28 downloading ******* 4from11 - (это возможное значение) 11:30 программа "KILL", PAUSE перед повторным запуском 2 секунды 11:32 programm starts 11:35 download ******* 4from18 и т.д.
Имеется ввиду когдо "download *******from18" известно, при наступлении любого другого значения отличного от "download *******from18" происходил бы перезапуск.
-
Digi502
-
- Posts: 12
- Joined: Tue, 11 Mar 2014, 22:14
by Morituruz » Fri, 14 Mar 2014, 22:04
VoidVolker У меня есть подобная штука для отслеживания сообщений о внутренних ошибках в логе nncron. Вы наступили на те же грабли, что и я вначале  , т.е. как только в логе появится искомая строчка, задача начнёт срабатывать непрерывно, пока ей по голове не дашь.
-

Morituruz
-
- Posts: 728
- Joined: Sun, 14 Oct 2007, 01:51
by VoidVolker » Fri, 14 Mar 2014, 22:12
В условиях задачи не было "не наступать на грабли" =) А вообще, достаточно просто удалить лог.
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by Digi502 » Fri, 14 Mar 2014, 22:32
лог перезаписывается после каждого запуска программы. необходимо чтобы перезапуск осуществлялся при любом значении отличного от шаблона.
-
Digi502
-
- Posts: 12
- Joined: Tue, 11 Mar 2014, 22:14
by Digi502 » Sat, 15 Mar 2014, 20:48
VoidVolker wrote:- Code: Select all
#( Задача_212614032014 SingleInstance WatchFile: "C:\path\file.txt" Action: S" C:\path\file.txt" FILE S" /*download.*?from11*/" RE-MATCH IF S" programm.exe" KILL S" C:\path\file.txt" FDELETE 2000 PAUSE S" programm.exe" START-APP THEN )#
Попробовал, но не заработало.  значение появляется влоге, а программа не перезапускается.
-
Digi502
-
- Posts: 12
- Joined: Tue, 11 Mar 2014, 22:14
by Morituruz » Sat, 15 Mar 2014, 21:10
«Если у вас есть проблема, и вы хотите решить её с помощью регулярных выражений, значит у вас теперь две проблемы»© Регэксп какой-то странный, первый астериск ни к чему не приставлен. Попробуйте этот: - Code: Select all
S" /download.*?from11.*/"
Проверять лучше так: открыть Инструменты — Консоль, и там подбирать так: - Code: Select all
S" C:\path\file.txt" FILE S" /download.*?from11.*/" RE-MATCH .
последняя точка — печать результата RE-MATCH на консоль, т.е. 0, если ничего не нашлось.
-

Morituruz
-
- Posts: 728
- Joined: Sun, 14 Oct 2007, 01:51
by VoidVolker » Sat, 15 Mar 2014, 21:43
Ааа, пардон, потерялись точки в регекспе. Поправил, вот так должно было быть: - Code: Select all
/.*download.*?from11.*/
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by Digi502 » Tue, 18 Mar 2014, 11:28
Почему-то не работает... Крон ничего не убивает и соответственно не перезапускает. Пробовал вносить изменения указанные в крайнем посте, но не помогло.
-
Digi502
-
- Posts: 12
- Joined: Tue, 11 Mar 2014, 22:14
by VoidVolker » Tue, 18 Mar 2014, 15:34
Задача не запускается или регулярное выражение не срабатывает? У меня все работает.
-

VoidVolker
- Site Admin
-
- Posts: 2907
- Joined: Tue, 25 Apr 2006, 17:56
by Digi502 » Mon, 24 Mar 2014, 21:10
Подскажите пожалуйста как реализовать работу данного алгоритма следующим образом? имеется лог программы запуск Крона 11:15 programm starts 11:16 downloading ******* 1from18 11:16 uploading ******* 1from18 11:19 downloading ******* 2from18 11:19 uploading ******* 2from18 11:23 downloading ******* 3from18 11:23 uploading ******* 3from18 11:28 downloading ******* 4from11 - (произошло изменение в значении) 11:30 программа "KILL", PAUSE перед повторным запуском 2 секунды 11:32 programm starts 11:35 download ******* 4from18 и т.д.
Перезапуск осуществлять при условии смены значения *from18* в строке шаблона "download *******from18" на любое другое значение
Спасибо
-
Digi502
-
- Posts: 12
- Joined: Tue, 11 Mar 2014, 22:14
by SeMa » Wed, 26 Mar 2014, 15:52
Похоже на интеллектуально продвинутый бот  .
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
-

SeMa
-
- Posts: 637
- Joined: Fri, 15 Apr 2005, 12:49
- Location: Украина
by Digi502 » Thu, 27 Mar 2014, 17:43
Так поможет кто-нибудь??? 
-
Digi502
-
- Posts: 12
- Joined: Tue, 11 Mar 2014, 22:14
by SeMa » Thu, 27 Mar 2014, 19:09
Digi502 wrote:Так поможет кто-нибудь??? 
1) смотрите лог крона. Может, там вообще нет запуска задачи? Если есть, то 2) не срабатывает регулярка.. Если текст задачи приведён полностью, то возникает 2 вопроса-сомнения: 3) program.exe в этом виде (без пути) должна запускаться? 4) может, для запуска program.exe нужна авторизация? Добавьте после START-APP- Code: Select all
ExitCodeProc 0 <> IF ExitCodeProc N>S HINT THEN
В хинте будет код завершения приложения. Расшифровка в SPF.ERR.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
-

SeMa
-
- Posts: 637
- Joined: Fri, 15 Apr 2005, 12:49
- Location: Украина
Return to nnCron forum (Russian)
Who is online
Users browsing this forum: No registered users and 2 guests
|
|