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

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

Автор: ALeXkRU
Дата сообщения: 25.02.2006 01:33
DJ makrus

Цитата:
там так написано что действительно можно двояко понять

там была вообще только одна ссылка на релиз поправил...
Автор: lucky_Luk
Дата сообщения: 26.02.2006 22:28
Поставил последнюю бету - 1.91 RC4 Build 1066. Исчез баг с WIN-INPUT-TEXT: - теперь работает. А WIN-TRANSPARENCY: все равно не пашет.
Автор: DJ makrus
Дата сообщения: 27.02.2006 02:45
lucky_Luk
1. Где код задачки? Если эта та что я ранее давал, то намекни что это она, если нет то выложи посмотреть.
2. Убедись что данная задача у тебя вообще запускается. Самый простой способ - в начало тела задачи вставь что-то вроде:
MSG: "Задача стартавала!"
позапускай ее вручную, если мой пример, то закрой справку и посмотри будет ругаться или нет.
3. Убедись что с названием окна, которое хочешь сделать прозрачным, не ошибся
4. Позакрывай все что можно, оставь винду и nnCron - мож с чем конфликтует?
5. А где-нибудь в других программах наблюдал "прозрачные" окна? Мож в винде чего натвикал, или "само" навернулось? Проверь как-нибудь.
Автор: lucky_Luk
Дата сообщения: 27.02.2006 10:27
DJ makrus

Цитата:
1. Где код задачки? Если эта та что я ранее давал, то намекни что это она, если нет то выложи посмотреть.

И твой пример задачи с прозрачностью глючит, и мои. Но все стартуют нормально - твоя задача например правильно реагирует на отсутствие окна с Хелпом.

Цитата:
3. Убедись что с названием окна, которое хочешь сделать прозрачным, не ошибся

Это конечно может быть, но почему даже твоя задача глючит?

Цитата:
4. Позакрывай все что можно, оставь винду и nnCron - мож с чем конфликтует?

ХЗ, попробую. Скоро еще одну XP буду себе ставить, на ней проверю.

Цитата:
А где-нибудь в других программах наблюдал "прозрачные" окна? Мож в винде чего натвикал, или "само" навернулось?

Наблюдал - ставлю прозрачность прогой WinRoll, выключал ее - все равно не срабатывает прозрачность из nnCron.
Твикеры не юзаю, но надо будет в реестре порыться на всякий случай.
В реестре XP вроде есть какой-то ключ который отключает прозрачность, кто подскажет?
Автор: lucky_Luk
Дата сообщения: 28.02.2006 10:18
Нужно перебросить nnCron на другой логический диск. Реально это сделать простым копированием папки с сабжем? А если придется переустанавливать, то какие файлы нужно сохранить чтобы заново его не настраивать - nncron.tab, nncron.ini, что еще?
Автор: evle
Дата сообщения: 28.02.2006 10:38
lucky_Luk
Достаточно просто скопировать папку. Чтобы переустановить службу запустить файл install_svc.bat.
Настройки хранятся в файлах *.tab и *.ini.
Автор: lucky_Luk
Дата сообщения: 04.03.2006 22:24
Проблема с задачей - задача запускается по WatchDir: с флагами WatchSubtree и WATCH-CHANGE-LAST-WRITE
На FAT32 все работало нормально, а на логическом диске с NTFS задача срабатывает не только при появлении нового файла (как надо), но и при его удалении - подозреваю что NTFS при удалении файла тоже делает какую-то запись в папку. Какой флаг можно поставить вместо WATCH-CHANGE-LAST-WRITE?
Автор: Xrobak
Дата сообщения: 06.03.2006 19:56
Есть одна проблема у меня, хочу узнать тут или может помочь в ее решении эта программа, а в идеале было если бы даже кто-то из уважаемых тут пользователей дал готовое решение (если есть желание и возможность конечно).

Вобщем ситуация: есть 2 подключения по сети, первое стандартное подключение по локалке, а второе - подключение по VPN (на далее подключение по локалке буду называть ПЛ, а подключение по VPN - ПВПН). Ночью ставлю качать файлы с инета через ПВПН, но в разное время ночью пропадает инет, ПВПН не вырубается, пакеты от меня уходят, но ответа никакого нет. Прихожу утром, смотрю - ничего не скачалось, опять ночью инет упал, хотя где-то через час появился был. Что приходится делать - беру отключаю ПВПН и подключаю заново его, и тогда инет опять есть, но ночью меня нет за компом, я не могу такое делать. Идея простая, раз к примеру в 10 минут запускать пинг какого-то сайта, если нет ответа, значит отрубить ПВПН и включить его заново и опять попробовать пропинговать, если ответа нет - повторяем, и так до тех пора, пока не получим ответ от пинга, соотвественно инет есть.

Вобщем не знаю или такое можно сделать через эту программу, а даже если и можно, то моих мозгов боюсь не хватит на то, чтобы реализовать решение моей проблемы с помощью этой программы.

Итог: хотелось бы получить ответ от вас, можно ли такое сделать через эту программу, это пока главное. Если можно, то буду искать людей каких-то, к-рые смогли бы мне помочь в этом. Всем спасибо за уделенное мне внимание, удачи.
Автор: DJ makrus
Дата сообщения: 07.03.2006 03:53
lucky_Luk
Цитата:
...задача срабатывает не только при появлении нового файла (как надо), но и при его удалении - подозреваю что NTFS при удалении файла тоже делает какую-то запись в папку...
вопрос на засыпку: а с помощью чего удаляется файл?
Мои поверхностные эксперементы выявили следующее:
1. Если удалять файл с помощью Проводника или TotalComander'а, то и на FAT32 и на NTFS задача подобная твоей не срабатывает.
2. Если удалять файл с помощью программы обеспечивающей гарантированное удаление файлов, то срабатывает и на FAT32 и на NTFS

Возможные пути решения:
1. Удалять с помощью программы которая "нормально" удаляет
2. Из целевой папки файл перемещать в промежуточную и там уже удалять с помощью программы которую по каким-либо причинам необходимо использовать (это если удалять надо именно этой программой и она помимо удаления может еще и перемещать удаляемые файлы в заданную папку)
3. При каждом срабатывании задачки сначала проверяешь текущее кол-во файлов не меньше предыдущего значения и если не меньше, то продолжаешь выполнять задачу, иначе выход из задачи (предыдущее значение хранишь в переменной)


Xrobak
Цитата:
...можно ли такое сделать через эту программу...
Почти наверняка можно (можно ли такое сделать с помощью языка программирования? ), вопрос в том удастся ли ограничиться возможностями nnCron'а или же действительно прийдется углубляться в Форт, я склоняюсь к первому, но уверенно ответить не могу, т. к. нету ни локалки под рукой ни VPN, хотя что из себя представляет и то и другое - догадываюсь
Расскажи по-подробнее про
Цитата:
...Что приходится делать - беру отключаю ПВПН и подключаю заново его...
а именно как (с помощью чего) ты подключаешь\отключаешь Инет?

PS и глянь еще вот эту тему
Автор: lucky_Luk
Дата сообщения: 07.03.2006 12:32
DJ makrus

Цитата:
1. Если удалять файл с помощью Проводника или TotalComander'а, то и на FAT32 и на NTFS задача подобная твоей не срабатывает.

Да? А у меня с Тоталом все работает - только через одно место, как описал. Надо будет еще через Проводник попробовать...
А почему же у тебя задача не фурычит?

Цитата:
Если удалять файл с помощью программы обеспечивающей гарантированное удаление файлов, то срабатывает и на FAT32 и на NTFS

Ты имеешь ввиду что нужно юзать вайпер?

Цитата:
При каждом срабатывании задачки сначала проверяешь текущее кол-во файлов не меньше предыдущего значения и если не меньше, то продолжаешь выполнять задачу, иначе выход из задачи (предыдущее значение хранишь в переменной)

Интересный вариант, попробую. Вот если бы понять что именно вызывает срабатывание после удаления - ведь в Хелпе написано что WATCH-CHANGE-LAST-WRITE удаления не замечает...

Автор: Xrobak
Дата сообщения: 07.03.2006 14:21
DJ makrus
VPN включаю через сетевое окружение, выбираю созданное ранее там подключение со всеми настройками ВПН, выскакивает окошко введите логин и пароль, далее шмешь соединить и происходит соединение. Все это же можно сделать и через командную строку при помощи Rasdial.

ЗЫ: спасибо за УРЛ, та тема похожа с моей...
Автор: DJ makrus
Дата сообщения: 08.03.2006 01:22
lucky_Luk

Цитата:
...А у меня с Тоталом все работает - только через одно место, как описал...
т. е. в Тотале ты выбираешь файл, жмешь "Del" (или Shift+Del) и у тебя запускается задача в шапке которой используется WatchDir: вместе с опцией WATCH-CHANGE-LAST-WRITE ???
Странно, может у тебя еще какой-то процесс автоматизирован который срабатывает на удаление файлов в данной папке (ну там синхронизации, бекапа или еще чего)? Попробуй проверить на другой папке (создай новую в корне диска на NTFS что бы уж точно не на что было грешить). А у тебя кроме как от WatchDir: больше ни от чего не может срабатывать задача? Что там еще в шапке используешь? Я например для эксперементов использовал [more=две задачи]
Код: #( test_watchdir
WatchDir: "E:\Temp"
WatchSubtree
WATCH-CHANGE-LAST-WRITE
Action:
TMSG: "Содержимое временной директории изменилось" 15
)#

#( test_watchdir2
WatchDir: "c:\Temp"
WatchSubtree
WATCH-CHANGE-LAST-WRITE
Action:
TMSG: "Содержимое временной директории изменилось" 15
)#
Автор: lucky_Luk
Дата сообщения: 08.03.2006 15:35
DJ makrus

Цитата:
т. е. в Тотале ты выбираешь файл, жмешь "Del" (или Shift+Del) и у тебя запускается задача в шапке которой используется WatchDir: вместе с опцией WATCH-CHANGE-LAST-WRITE ???

Именно так, но только на NTFS. Причем глюк наблюдается только если новый файл появляется только во вложенной папке, глючит и с Тоталом, и с Проводником.

Цитата:
Что там еще в шапке используешь?

Больше ничего не использую.

Цитата:
тоесть? у меня как раз все фурычит как написано в справке! или я чего-то не понял?

Ну так ты же написал в предыдущем посте, что

Цитата:
Мои поверхностные эксперементы выявили следующее:
1. Если удалять файл с помощью Проводника или TotalComander'а, то и на FAT32 и на NTFS задача подобная твоей не срабатывает.

И я понял что она вообще не пашет, а ты наверно имел ввиду что она при удалении файла не срабатывает.
Еще ты написал

Цитата:
Если удалять файл с помощью программы обеспечивающей гарантированное удаление файлов

Для меня "гарантированное удаление" значит "без возможности восстановления удаленных файлов", т. е. то, что делает вайпер (шреддер). Ладно, разобрались, просто неправильно поняли друг-друга.
Но вот почему глючит задача, если удаляется файл из папки, вложенной в ту, за которой следит nnCron это вопрос... Где-то читал что NTFS при изменении/удалении файлов из папки меняет ее временной атрибут (не помню какой именно), и также меняет этот атрибут на всех папках, которые "над ней" - до корневой. По-идее сабж должен это замечать и запускать задачу .

Задача с chkdsk и логом не пошла - [more]В командной строке (и вроде бы в чистом ДОС) есть "универсальный инструмент" для логирования действий программ - конструкция C:\Program.exe>filename.txt - тогда все что прога обычно выдает в окно командной строки записывается в текстовый файл (в ДОС-кодировке). Но с chkdsk почему-то в лог пишется не вся инфа. А встроенной функции логирования эта прога не имеет.

Кто знает куда еще chkdsk пишет результаты работы - может в системный журнал XP?
[/more]

Еще вопрос - есть источник бесперебойного питания и не очень хорошая прога для управления - не умеет юзать спящий режим Винды. Как бы с помощью nnCron сделать переход в спящий режим при минимальном заряде батарей? UPS при минимальном заряде сильно пищать начинает и что-то посылает по COM-порту. Можно ли заставить nnCron срабатывать на такое "сообщение"?
Автор: Xrobak
Дата сообщения: 08.03.2006 15:46
DJ makrus

Цитата:
а проблема в той теме у тебя наблюдается?

проблема у того человека немножечко отличается от моей, у него там есть 3 впн-подключения и нужно включать вроде как только одно, в случае если на каком-то соединении пропал инет. А у меня же всего 1 подключение ВПН, и мне нужно проверять, если пинг идет без потерь, т.е. хост есть, знач все ок, если нет - делать разрыв и коннект.

Вобщем мне один человек вчера дал кусок кода для ннкрон, но он у меня не пашет, вот
[more=код]
Код: NoLog
AsLoggedUser
Time: */5 * * * * *
Action:
HOST-EXIST: "google.com" NOT
IF
LOG: "Inet propal..."
HANGUP: "VPNC"
RASUser: "user"
RASSecPassword: "password"
DIAL: "VPNC" 1 1
THEN
Автор: DJ makrus
Дата сообщения: 09.03.2006 07:37
lucky_Luk
мои эксперементы были действительно поверхностными , при удалении в подпапке - задача запускается!
Запостил топик на оффоруме.

Цитата:
...и что-то посылает по COM-порту. Можно ли заставить nnCron срабатывать на такое "сообщение"?
скорее всего легкий вариант не получится, глянь вот здесь и вот сюда на всякий случай.

Xrobak

Цитата:
...проблема у того человека немножечко отличается от моей, у него там есть 3 впн-подключения...
там главная проблем в роутере..., как бы у тебя не было такой же проблемы.

Цитата:
...но он у меня не пашет...
попробуй вместо\после строчек "AsLoggedUser" написать строку "LoadProfile"
и на время отладки закомментируй строки с "NoLog" (допиши в начале строки "\ " - обратный слеш + пробел)
Автор: lucky_Luk
Дата сообщения: 09.03.2006 09:38
DJ makrus

Цитата:
Запостил топик на оффоруме.

Спасибо. Теперь надо разобраться почему у меня WIN-TRANSPARENCY: глючит.

Цитата:
скорее всего легкий вариант не получится, глянь вот здесь и вот сюда на всякий случай.

Почитал, в первом топике нифига не понял, во втором понял что моих знаний на такое не хватит .
Ни у кого нет самопальной или еще какой проги для слежения за COM-портом, типа чтобы отследить что UPS на него посылает при почти полном разряде батарей? Ну и чтобы прога на эту "команду" окошко выкидывала или файл какой создавала - а от этого уже буду плясать с nnCron. Или может в WinXP что-то есть встроенное для слежения за портами?
Автор: Labutin
Дата сообщения: 13.03.2006 15:36
Не пинайте сильно Наверняка это есть в документации, но нет времени досконально ее читать
Нужно запускать несколько программ на Java при загрузке компьютера без необходимости логиниться. Программы запускаются так:
java -cp ... прога.class
в принципе это можно оформить .bat файлом.
Плюс, если программа останавливается/падает, то она должна автоматически перезапускаться.
Если бы не было второго условия, то подошел бы стандартный планировщик.
Как оформить такой запуск в nnCron?
Автор: unreal666
Дата сообщения: 13.03.2006 16:35
Labutin

Цитата:
Плюс, если программа останавливается/падает, то она должна автоматически перезапускаться.

Что значит "падает"? Просто убивается из списка процессов? Или при этом вылазит какое-то сообщение?
Если закрывается процесс, то следить за этими процессами с помощью команды WatchProcStop, и при перехвате закрытия этого процесса запускать его заново.
Автор: Labutin
Дата сообщения: 13.03.2006 18:36
unreal666

Цитата:
Что значит "падает"? Просто убивается из списка процессов? Или при этом вылазит какое-то сообщение?

Просто убивается из списка процессов.
Но тут вот какая сложность. Таких программ несколько. И при запуске в процессах числится только java.exe Как определить какой именно процесс остановился и его нужно запустить заново?
Автор: DJ makrus
Дата сообщения: 14.03.2006 04:35
lucky_Luk
Цитата:
Почитал, в первом топике нифига не понял, во втором понял что моих знаний на такое не хватит
Я понял тоже далеко не все..., идея в следующем:
Взяв за основу пример из первого топика, читать то что посылает UPS и сравнивать с тем что он посылает в интересующем тебя состоянии (этот образец посылок UPS'а предварительно получаешь от него и сохраняешь использую в дальнейшем в качестве эталона).
Из второго топика тут может пригодиться упомянутый там плагин для определения занятости порта.

Цитата:
Теперь надо разобраться почему у меня WIN-TRANSPARENCY: глючит.

IMHO, что то с виндой у тебя

Labutin
Сразу вопрос: количество процессов java.exe фиксировано, и если нет, то в каких пределах колеблется?
Для начала [more=разберемся с запуском.]
1. У нас должно будет получиться несколько задач, которые лучше держать в отдельном кронтабе. Поэтому создай файл Java.tab либо в папке где установлен nnCron либо в подпапке "Tabs" где у тебя будут все используемые кронтабы (сам пользуюсь вторым вариантом).
2. Далее новый кронтаб надо "зарегистрировать", открываешь файл nncron.ini вверху будет одна или несколько строк начинающихся с "Crontab:" и далее имя кронтаба. Тебе надо добавить еще одну строку в которой меняешь имя кронтаба на "Java.tab". Учитывая ранее сказанное надо из:
Код: Crontab: "nncron.tab"
Автор: Labutin
Дата сообщения: 14.03.2006 07:44
DJ makrus
Вот, что получилось.

Цитата:
#( Java1
NoActive
Time: START-TIME
Action:
StartIn: "C:\GRID"
ShowNormal NormalPriority
START-APP: C:\GRID\1_globuscontainer.bat
)#

#( Java2
NoActive
Time: START-TIME
Action:
StartIn: "C:\GRID"
ShowNormal NormalPriority
START-APP: C:\GRID\2_tsi.bat
)#

#( Java3
NoActive
Time: START-TIME
Action:
StartIn: "C:\GRID"
ShowNormal NormalPriority
START-APP: C:\GRID\3_gass.bat
)#

Запускать нужно только три программы. Условия чуток изменились. Запуск оформлен в виде .bat файлов, т.к. кроме java -cp ... нужно еще и некоторые переменные окружения устанавливать.
В общем после ручного запуска (правый клик -> Выполнить задачу -> Java1|Java2|Java3) все работает. Только нужно ориентироваться, наверное, на пропадание процесса cmd.exe, а не на java.exe
Автор: unreal666
Дата сообщения: 14.03.2006 10:16
DJ makrus

Цитата:
я планирую отлавливать падение процессов java.exe именно по PID'у. Алгоритм примерно такой

Я вообще думал подобным образом, но с созданием в начале cron-файла блока переменных, и отлавливанием не несуществующего процесса, а упавшего процесса (с помощью переменной %WATCH-PROC-ID%).
И PID загнать не в массив, а в переменную VARIABLE.


Labutin

Вот кажется рабочая задача, по крайней мере у себя я не смог закрыть прогу (она каждый раз перезапускалась). И у тебя я убрал Time: START-TIME из задач, так удобнее запускать эти задачи. Только пока точно не знаю, какой процесс отлавливать для твоего случая. Сделал cmd.exe
[more=Сам код]
Код: # Создаем глобальные переменные
<%
VARIABLE pid1
VARIABLE pid2
VARIABLE pid3
%>

#( Java1
NoActive
Action:
    StartIn: "C:\GRID"
    ShowNormal NormalPriority
    START-APP: C:\GRID\1_globuscontainer.bat
    PROC-ID pid1 !
)#

#( Java2
NoActive
Action:
    StartIn: "C:\GRID"
    ShowNormal NormalPriority
    START-APP: C:\GRID\2_tsi.bat
    PROC-ID pid2 !
)#

#( Java3
NoActive
Action:
    StartIn: "C:\GRID"
    ShowNormal NormalPriority
    START-APP: C:\GRID\3_gass.bat
    PROC-ID pid3 !
)#

#( run_java
Time: START-TIME
Action:
    Java1 RUN     \ Запуск 1-ой задачи
    Java2 RUN     \ Запуск 2-ой задачи
    Java3 RUN     \ Запуск 3-ей задачи
)#

#( Recovery_java
WatchProcStop: cmd.exe
Action:
    S" %WATCH-PROC-ID%" EVAL-SUBST S>NUM \ Преобразуем строкое значение %WATCH-PROC-ID% в число и ложим его на стек
    CASE \ Сравнение PID убитого процесса с PID наших задач
        pid1 @ OF Java1 RUN ENDOF
    pid2 @ OF Java2 RUN ENDOF
    pid3 @ OF Java3 RUN ENDOF
    ENDCASE
)#
Автор: RussianNeuroMancer
Дата сообщения: 14.03.2006 12:42
Мне кажется что листинг стоит убрать в тэг more.
Автор: Labutin
Дата сообщения: 14.03.2006 15:59
unreal666

Цитата:
Вот кажется рабочая задача, по крайней мере у себя я не смог закрыть прогу (она каждый раз перезапускалась). И у тебя я убрал Time: START-TIME из задач, так удобнее запускать эти задачи. Только пока точно не знаю, какой процесс отлавливать для твоего случая. Сделал cmd.exe

Да, похоже то, что и нужно. Огромное спасибо!!!
Автор: DJ makrus
Дата сообщения: 14.03.2006 18:02
unreal666
Цитата:
Я вообще думал подобным образом ...
я знаю об этом, т. к. видел твой топик на оффоруме и то что ты там начал уходить в сторону идентификации процесса по командной строке запуска.
Цитата:
...и отлавливанием не несуществующего процесса, а упавшего процесса...
в принципе "те же яйца тока сбоку", на тот момент я конкретную реализацию не обдумывал и главное было что бы был понятен сам принцип.
Цитата:
...И PID загнать не в массив, а в переменную VARIABLE.
в очередной раз убеждаюсь что по ночам лучше спать, чем заниматься чем-то серьезным это я PID перепутал с хэндлом окна для обозначения которого используется шестнадцатиричная система счисления и я не был уверен, что получится его сохранить в переменной, поэтому упомянул более общий случай.

Ежели подводные камни не вылезут (о чем, я думаю, нам сообщит Labutin), то будем считать "дело закрытым", рад что мой прогноз оказался через-чур пессимистичным и у нас уже есть "и кости и мясо"
Автор: Keugh
Дата сообщения: 16.03.2006 10:36
хмм.... скачал nncron191r4.exe
Поставил, как заставить работать GUI?
Запускаю с папки крона файлик "tray.exe"
Он вешается в трей, тыкаю по любым опциям - ничего не открывается.
После этого, он повесит 30-40 секунд и вылетает.
Сам ГуИ - сам крон, продолжает работу.

Что это могло быть?
Ставил на 2003Сп1, русс. Работаю на нём терминально, при помощи УдалРабСтол.
Автор: unreal666
Дата сообщения: 16.03.2006 10:45
Keugh
Что, уже разобрался А то я только написал ответ, а ты уже удалил пост.
Автор: Keugh
Дата сообщения: 16.03.2006 11:14
unreal666


Уху.. по первому вопросу - да=)
у меня там две папки было - крон, и НН крон, так я в первой ГУИ искал %)))
Автор: unreal666
Дата сообщения: 16.03.2006 11:24
Keugh
При установке должна устанавливаться и запускать служба nnCron. После запуска этой службы в трее появляется значок nnCron'а.
Если службы нет, то запусти файл install_svc.bat для установки службы.
Если нужно запустить nnCron, когда служба оставнолена, то надо запустить файлик startnncron.bat.
Другие файлы в папке nnCron нужны самому nnCron'у, запускать их смысла нет.
После щелкаешь правой кнопкой мыши по значку в трее и выбираешь "Добавить задачу", вот тебе и GUI.

Кстати. Через GUI можно создавать только простые задачи. Сложные надо вручную через текстовый редактор.
Автор: Keugh
Дата сообщения: 16.03.2006 11:35
unreal666

Крон - запущен, в службах вижу, что служба ннКрон - работает.
Пробывал стопить\перезапускать, как через батники, так и руками.
В систем трее - нефига не появляетсяя.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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