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

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

Автор: DJ makrus
Дата сообщения: 10.04.2006 18:04
cracklover
Цитата:
...или я всё-таки где-то накосячил в кронтабе
ну ни без этого - измини название задачи, т. к. каждая задача - это новое Форт слово, "1" - это тоже Форт-слово, при переопределении Форт-слова, старое значение "забывается" и в данном случае это может привести к непредсказуемым последствиям
И еще один момент. На время отладки задачи сразу после Action: добавь "BEEP: 500 1000" тогда услышав звук ты точно будешь знать что условие в шапке сработало, а то может быть у тебя задача запускается, но по какой-либо причине не срабатывает WIN-CLICK:, а ты будешь мучаться менять условие запуска вместо того что бы выяснять что у тебя неправильно в теле задачи. Затем когда добьёшься устойчивого выполнения задачи удалишь строчку что бы пикание на мозги не капало.
Автор: direktor
Дата сообщения: 11.04.2006 19:48
Всем привет.
Какое дело, установил нкрончика, он у меня и скрипты запускает и прожки всякие..короче молодец..Одно но, при запуске торент клиенат Аzureus, тот открывался всегда как в первый раз, никаких торентов что я загрузил, и опции которые выставил, все с белого листа...Помучался я немного. начал ключи искать запуска для Аzureus, гуголить по полной программе, в поиске решения...Оказалось все намного проще
Достаточно поставить голочку "Как пользователь выполнивший логон", короче авторизировать таск...На этот продвинутый трюк, меня сподвинуло чтение этого топика в режиме "версия для печати", спасибо всем за помощь, ну и мне за внимательность...РуБорд как всегда рулит
Автор: cracklover
Дата сообщения: 12.04.2006 00:48
Показательный пример, чего я смог добиться с помощью nncron:

http://forum.ru-board.com/topic.cgi?forum=35&bm=1&topic=22714#1

читайте особо внимательно последний мой пост в вышеуказанном топике.

Использую мирный атом в военных целях
Автор: maxud
Дата сообщения: 12.04.2006 07:46
Возникла такая проблема. nnCron стоит на w2000 и настроен на выполнение такой задачи: раз в минуту взять файл с новелевского сервера (стоит Novell Client32 последней версии) и переложить его с помощью winSCP на другой сервак. Все замечательно работает, но вот сетка у нас глючная (тут уж ничего не поделаешь) и время от времени физически пропадает сетевое соединиение с новелевским сервером (минут на 5). Novell Client32 конечно потом восстанавливает это соединение. А во nnCron на этот момент в логах пишет "Внутренняя ошибка. Указанное сетевое имя более недоступно" (что нормально), но задача больше не выполняется ни в ручную ни автоматом. Приходится выгружать nnCron, загружать заново и выполнение задачи продолжится как ни в чем на бывало. Как можно вылечить?
Автор: mod_brain
Дата сообщения: 12.04.2006 08:07
maxud
Добавь WatchFile: "..." может поможет

ну и конечно раз в минуту оставить

Добавлено:
Хотя нет, WatchFile не подойдет, надо Rule: FILE-EXIST: "..."
Автор: DAphnie
Дата сообщения: 12.04.2006 17:09
Проблема на w2k3 с поднятой службой терминалов - при входе в меню через иконку в трее подвисает вся система, ненадолго, но подвисает. Как только меню закрывается система "оживает" и работе как будто ничего не происходило.

Случается, что подвисает только ннкрон - передвижение по пунктам меню происходит чрезвычайно медленно - на каждом пункте тормоз 5-10 секунд, хотя другие приложения работают нормально.

Так как ннкрон стоит на 3-х серверах (одна и та же версия 1.91.1083), но только один из них w2k3, остальные w2k0, то можно сделать вывод, что ннкрон не дружит с w2k3.

Могу немного оконкретизировать - при "беганьи" мышкой по пунктам меню (снизу вверх и обратно) от "Выход" до "Лог-файл" все нормально, а вот при попытке перехода на пункты "Редактировать" и "Выполнить задачу" - жуткий висяк, может подвиснуть только крон, может вся система. Продолжительность подвиса всегда разная - от 5 секунд до 30-40 секунд.

Решаемо? Или только ждать новых версий?

зы. пробовалось и запуском крона как сервисом и как приложением.
Автор: maxud
Дата сообщения: 12.04.2006 17:55
mod_brain
Спасибо, помогло!
Остается надеяться, что сеть не сбойнет уже после начала выполенеия задания
Не очень правильная обработка такой ситуации (временное исчезновение сетевого диска), мне кажется. Ну и фиг с ним, что произошла ошибка, жди следующего раза. Так нет же, задание блокируется навсегда.
Автор: Timon_Crazy
Дата сообщения: 13.04.2006 05:16
Помогите решить задачу, все маны облазил не могу сообразить:
В буднии дни ( Пн, Вт, Ср, Чт, Пт) с 7-45 до 17-15 через каждые 15 минут проверять если несуществует процес miranda32.exe и существует хост (есть пинг) 192.168.2.6 запускать "C:\Program Files\Miranda IM\miranda32.exe".
В буднии дни (с 17-16 и до 7-44) и в выходные (Сб, Вск) в любое время если процес miranda32.exe существует то убивать его.

такая вот задачка.
Приношу извинения если подобный вопрос задавался и на него есть ответ.
Автор: unreal666
Дата сообщения: 13.04.2006 11:00
Timon_Crazy
Для первой задачи (запуск миранды)...

Код: #( Run_miranda
Time: * * * * 1-5 *
Rule: INTERVAL: 07:45-17:15/00:15 PROC-EXIST: "miranda32.exe" NOT AND HOST-EXIST: "192.168.2.6" AND
Action:
ShowNormal NormalPriority
START-APP: C:\Program Files\Miranda IM\miranda32.exe
)#
Автор: sabio
Дата сообщения: 13.04.2006 12:10
Подскажите, что-то у меня не получается передать параметры для запускаемых программ.
Задачу создавал через GUI, выбрал программу для запуска, в следующем поле ввел параметры, в итоге получилось так:

Код: #( test
AsLoggedUser
Time: 0 1 * * 1-5 *
Action:
StartIn: "D:\"
ShowNormal NormalPriority
START-APP: D:\test.bat "some message here"
)#
Автор: Timon_Crazy
Дата сообщения: 13.04.2006 12:30
unreal666

Лучше проверть на существование процеса и убивать.
ка креализовать ?
именно только в выходные дни и в не рабочее время

Добавлено:
unreal666
не работает скриптик..
Автор: unreal666
Дата сообщения: 13.04.2006 18:25
Timon_Crazy
Возможно пинг не проходит. Попробуй для начала без пинга. И попробуй пропингуй этот комп вручную; если на нем стоит файрвол, то пинг скорее всего не пройдет. При нормальных настройках файервола, он (файер) по умолчанию блокирует пинг.

Да. Еще добавь перед Action:

Код: AsLoggedUser
LoadProfile
Автор: sabio
Дата сообщения: 13.04.2006 19:21
unreal666
Да элементарный он. Говорю же, у меня даже вставленный в самое начало echo с редиректом в файл ничего не выводил, пока не убрал параметр. А вообще батник у меня такой:
Код:
@echo off

set MSG=%1
if "%MSG%" == "" set MSG="Disk burn complete"

set USERNAME=%USERPROFILE:C:\Documents and Settings\=%

for /F "tokens=1,2 skip=13 usebackq" %%n in (%0) do (
if /I %%n EQU %USERNAME% net send %%o %MSG%
)
goto :eof

rem add login and workstation name below this line
xxx host1
yyy host2
Автор: unreal666
Дата сообщения: 13.04.2006 21:10
sabio

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

Так и должно быть, потому что это и есть одна строка, просто при создании задачи строка поле "Параметры" сделано для удобства.

Цитата:
этот батник не запускается (вставленный первой строкой echo в файл ничего не выводит),

Эта фигня из-за самого батника, nnCron тут ни причем. Прсто у тебя не рассмотрен случай развертывания переменной %MSG%. Можешь даже из командной строки запустить батник с твоим параметром - вылезет ошибка.
Для твоего примера при развертывании переменной получается такая каша

Код: if ""some message here"" == "" set MSG="Disk burn complete"
Автор: sabio
Дата сообщения: 14.04.2006 08:16
unreal666
Да, про эти лишние кавычки я и правда не подумал. Спасибо!
(а в тему про батники мне нечего идти - я и сам знаю, как их убрать: set MSG=%~1
С профилем тоже поробую..
Автор: DJ makrus
Дата сообщения: 27.04.2006 03:57
igaraev
для решения описАнной тобою тут проблемы я предложил тебе свой вариант ее решения, которое ты посчитал не изящным...
Недавно на оффоруме промелькнул код изящество которого ты должен признать:
Код: \ \ переименовываем, добавляя лидирующий ноль (если нужно)
FILE-RENAME: "e:\tmp3333\date.dbf" "e:\tmp3333\%MY_YEAR% %MY_MONTH S>D <# # # #>% %MY_DAY S>D <# # # #>%.dbf"
Автор: LArV
Дата сообщения: 28.04.2006 15:02
Подскажите плиз как открыть сайт (например: "www.site.org") в браузере по умолчанию?
START-APP: "http://www.site.org/" - такая конструкция не работает
Автор: Stygis
Дата сообщения: 28.04.2006 15:27
LArV
Подозреваю, что есть лучшее решение, но можно через VB/JScript

Код: Action:
<JScript>
var WshShell = new ActiveXObject('WScript.Shell');
WshShell.Run("http://www.ya.ru", 0, false);
delete WshShell;
</SCRIPT>
Автор: LArV
Дата сообщения: 28.04.2006 15:57
Stygis, благодарю работает
А средствами сабжа, кто-нибудь знает?
Автор: unreal666
Дата сообщения: 28.04.2006 18:43
LArV

Код: Action:
5 0 0 Z" http://www.site.org/" Z" open" 0 ShellExecuteA DROP
Автор: DJ makrus
Дата сообщения: 28.04.2006 20:35
LArV
вот еще в копилку два варианта с оффорума:
первый от Валерия Кондакова (создатель справки к nnCron'у):
Код: START-APP: C:\Program Files\Internet Explorer\iexplore.exe http://www.site.org/"
Автор: Stygis
Дата сообщения: 28.04.2006 20:46
DJ makrus

Код: START-APP: C:\Program Files\Internet Explorer\iexplore.exe http://www.site.org/"
Автор: unreal666
Дата сообщения: 28.04.2006 20:56
DJ makrus

Цитата:
START-APP: C:\Program Files\Internet Explorer\iexplore.exe http://www.site.org/"

Ему надо открыть ссылку в браузере по умолчанию, а этот вариант в конкртеном браузере.

Да и мой вариант действует так, как действовала бы сама ОС.

Добавлено:
Stygis
А как тебе мой вариант?
Автор: Stygis
Дата сообщения: 28.04.2006 21:24
unreal666
Я честно говоря, довольно мало в nnCron'е работал с Фортом, только начал можно сказать разбираться. Так что ничего не могу сказать
Вот если скажешь, что значит "5 0 0 Z..." буду благодарен Z - это, кажется, создание пустой строки, а вот остальное... %)
ЗЫ. Кстати, в том же месте, что указал ты, чуть позже лежит описание запуска ярлыка через JS - то же, что написал и я Ток они забыли уничтожить объект
Автор: DJ makrus
Дата сообщения: 28.04.2006 21:55
Stygis, unreal666 , ага первый вариант в данном случае не решает поставленной задачи, хотя на оффоруме и он верен.

А второй вариант, действительно аналогичен тому что сделан через VB/JScript, однако, IMHO, удобнее и практичнее даже по сравнению с воистину гениальным решеним unreal666, по двум причинам:
1. банально, но в использовании он нагляднее и короче в написании
2. он предоставляет два слова постфиксное и префиксное, причем именно постфиксное, как правило, удобнее при использовании в nnCron'е.

Идеальным на мой взгляд было бы определить слова OPEN-URL и OPEN-URL: через ShellExecuteA, но на манер Tez
Автор: unreal666
Дата сообщения: 28.04.2006 22:04

Цитата:
Вот если скажешь, что значит "5 0 0 Z..." буду благодарен Z - это, кажется, создание пустой строки, а вот остальное... %)

Не Z, а Z" xxx" (в данном случае Z" http://www.site.org/" и Z" open") - это нуль-строка (строка без счетчика с завершающим нулем, az-строка), аналогично S" xxx" DROP. Такие строки используются, например, в вызовах API, а также в случаях, когда длина строки может превышать 255 символов: у нуль-строк нет ограничения по длине.
Эта инфа находится в справка -> Дополнительная информация -> "Неотложная помощь" по Форту -> Какие типы строк используются в SP-Forth?

Посмотрел через консоль что-это за слово такое ShellExecuteA, оказалось, что это функция API из библиотеки SHELL32.DLL. Вот ее описание из библиотеки MSDN:

ShellExecute(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd).

[more=Вот расшифровка...]ShellExecute(hwnd, lpOperation, lpFile, lpParameters, lpDirectory, nShowCmd),

где

hwnd - Handle to a parent window. This window receives any message boxes that an application produces, such as error reporting.

lpOperation - Pointer to a null-terminated string, referred to in this case as a verb, that specifies the action to be performed. The set of available verbs depends on the particular file or folder. Generally, the actions available from an object's shortcut menu are available verbs. The following verbs are commonly used.
edit - Launches an editor and opens the document for editing. If lpFile is not a document file, the function will fail.
explore - Explores the folder specified by lpFile.
find - Initiates a search starting from the specified directory.
open - Opens the file specified by the lpFile parameter. The file can be an executable file, a document file, or a folder.
print - Prints the document file specified by lpFile. If lpFile is not a document file, the function will fail.
NULL - For systems prior to Microsoft® Windows® 2000, the default verb is used if it is valid and available in the registry. If not, the "open" verb is used. For Windows 2000 and later systems, the default verb is used if available. If not, the "open" verb is used. If neither verb is available, the system uses the first verb listed in the registry.

lpFile - Pointer to a null-terminated string that specifies the file or object on which to execute the specified verb. To specify a Shell namespace object, pass the fully qualified parse name. Note that not all verbs are supported on all objects. For example, not all document types support the "print" verb.

lpParameters - If the lpFile parameter specifies an executable file, lpParameters is a pointer to a null-terminated string that specifies the parameters to be passed to the application. The format of this string is determined by the verb that is to be invoked. If lpFile specifies a document file, lpParameters should be NULL.

lpDirectory - Pointer to a null-terminated string that specifies the default directory

nShowCmd - Flags that specify how an application is to be displayed when it is opened. If lpFile specifies a document file, the flag is simply passed to the associated application. It is up to the application to decide how to handle it.
SW_HIDE - Hides the window and activates another window.
SW_MAXIMIZE - Maximizes the specified window.
SW_MINIMIZE - Minimizes the specified window and activates the next top-level window in the z-order.
SW_RESTORE - Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window.
SW_SHOW - Activates the window and displays it in its current size and position.
SW_SHOWDEFAULT - Sets the show state based on the SW_ flag specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application. An application should call ShowWindow with this flag to set the initial show state of its main window.
SW_SHOWMAXIMIZED - Activates the window and displays it as a maximized window.
SW_SHOWMINIMIZED - Activates the window and displays it as a minimized window.
SW_SHOWMINNOACTIVE - Displays the window as a minimized window. The active window remains active.
SW_SHOWNA - Displays the window in its current state. The active window remains active.
SW_SHOWNOACTIVATE - Displays a window in its most recent size and position. The active window remains active.
SW_SHOWNORMAL - Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

Возвращаемое значение - если успешно, то возвращает значение более 32, если ошибка, то возвращает значение меньше или равно 32.[/more]

В nnCron эти параметры вводятся в обратном порядке (потому что слова в nnCron считывают первым то, что положилось последним на стек).
Автор: DJ makrus
Дата сообщения: 28.04.2006 22:11
Stygis
Цитата:
...Вот если скажешь, что значит "5 0 0 Z..." буду благодарен Z - это, кажется, создание пустой строки, а вот остальное... %)...

Все это передача параметров для WinAPI функции ShellExecute - открытие "специфицированного" файла,
Z" open" создание строки "open" заканчивающейся нулем, как принято в WinAPI, помимо "open" можно еще использовать "print" и "explore"
Автор: sabio
Дата сообщения: 28.04.2006 22:17
LArV

Цитата:
как открыть сайт в браузере по умолчанию?

Может, я, конечно, чего не понимаю, но что мешает сделать просто так:

Код: START-APP: start http://opera.com
Автор: Stygis
Дата сообщения: 28.04.2006 22:26
DJ makrus
Кстати, в твоем варианте еще выскакивает на полсекунды окошко cmd... Что не есть гут
Ххы... тормозим-с... Сделал задачу с твоим вариантом - не работает... Появляется окно cmd и висит.... Минут 5 думал Потом дошло, что забыл в задачу запихать AsLoggedUser

unreal666
МСДН есть, но все равно пасиб

Цитата:
Посмотрел через консоль что-это за слово такое ShellExecuteA

Хм... в смысле через nnCron-консоль? А как увидел, что это функция из shell32.dll?
Автор: unreal666
Дата сообщения: 28.04.2006 22:38
sabio

Цитата:
START-APP: start http://opera.com

Нельзя передавать URL, содержащие пробелы.

Цитата:
Единственный минус - через диалог создания новой задачи это сделать не получится - nnCron ругается, что не может найти этот самый start.

Можно перейта на вкладку "Дополнительно" и уже там нажать OK.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566

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


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