NnCron - улучшенный планировщик заданий для Windows. Последние напутствия к действию

Всем привет. Сегодня я расскажу вам про замечательную программу nnCron.

Знакомьтесь nnCron это переписанный под windows планировщик и менеджер задач cron из UNIX.
Невероятно и удобная и полезная программа поможет вам разобраться с задачами, требующими регулярного выполнения, и напомнит о важных делах.

Скачиваем и устанавливаем nnCron

В конце статьи вы найдете ссылку «nncron скачать». После завершения загрузки запустите файл «nncron_rus.exe». Установка не представляет собой ничего сложного. nnCron работает на всех виндах, есть даже nncron для windows 7. Кстати, на семерке есть одна хитрость. Чтобы nnCron работал в windows 7 нормально, надо при установке выбрать пункты «установить для текущего пользователя» и «установить для всех пользователей», а галочку «установить, как службу снять». Для того, программа работала на русском языке, после установки нажмите правой кнопкой на значок в трее и выберите Options->Language далее выберите из списка Russian, жмите Ок. nnCron предложит вам сохранить конфигурацию и перезапустить его, соглашайтесь и теперь он на русском.

Регистрация nnCron

Теперь об интересующем многих вопросе регистрации nnCron. Программа платная, но не спешите искать crack для nnCron, есть хорошая новость — для всех жителей бывшего СССР nnCron является бесплатным для некоммерческого использования. Поэтому забудьте о crack’ах, выбирайте в меню программы «Зарегистрировать nnCron». В появившемся окне вводите «xUSSR регистрация» в поле «Регистрационное имя» и текущий день недели русскими буквами, например, «четверг» в поле «Регистрационный код». Жмите Ок. Поздравляю! Вы только что, произвели регистрацию nnCron и теперь можете им пользоваться в свое удовольствие.

Этот таинственный мистер Форт

Продолжим наше изложение с последнего озвученного мною допущения «а если вы вдруг программист». Поскольку мощь nnCron по-настоящему становится очевидной только при владении этим языком программирования, имеет смысл ну очень кратко остановиться и на нем. Фишка в том, что любая программная конструкция программы может быть как угодно «доразвита» за счет встроенной возможности интерпретировать команды языка Форт. Выходит, что вы получаете не просто законченный инструмент, а лишь мощную заготовку, которую вы можете доработать в соответствии со своими запросами (о"кей, альтернативный вариант — запросами вашего работодателя).

Итак, Форт (а точнее, его отечественный диалект ) — это язык программирования, в котором программы записываются в постфиксной записи и в стековой нотации, при этом он поддерживает механизмы метарасширения для изменения семантики и синтаксиса языка при настройке на конкретную предметную область. Синтаксис базового уровня в Форте прост и состоит из единственного правила: «Все определения разделяются пробелами».

Определения Форта могут иметь любое сочетание символов, позволяя вам фактически строить свой, новый, язык на базе предыдущего языка (определений). Вот из этого слоеного теста и слеплен скриптовый язык-каркас для nnCron, оставляя за вами возможность долепить на его прочном фундаменте свою собственную «идеальную машину для автоматизации чего угодно » (или довольствоваться всем имеющимся). Именно поэтому я так и тянул, почти до конца статьи, со списком общих возможностей программы, потому что они… они бесконечны!

И самый простой вариант для такого расширения в nnCron — плагины . Это обычные текстовые файлы с расширением.spf, выполненные как дополнительные модули nnCron, также написанные на языке Форт, которые расширяют функциональность программы за cчет добавления собственных новых слов (операторов и инструкций). В дистрибутив nnCron включено больше десятка полезных (и не очень) плагинов, которые располагаются в подкаталоге plugins домашней директории nnCron.

В заключение, для всех начинающих метапрограммистов, очарованных магией языка Форт, я любезно приведу готовый ответ на первый ваш ещё невысказанный вопрос: как же вывести список всех Форт-слов, находящихся в словаре (читай — утробе) nnCron? Нет ничего проще: откройте Форт-консоль (для более традиционных программистов поясню, что это своего рода штатная дверь во внутренности программы, с которой вы, таким образом, имеете честь общаться, и это возможно как локально, так и удаленно - по сети) и введите туда команду WORDS . Да, чуть не забыл предупредить: приготовьтесь увидеть список, состоящий примерно из трех тысяч слов.

Для всех желающих научиться расширять nnCron: с одной стороны, предлагаю начать свой экскурс в богатый мир языка Форт с этой информативной , а с другой стороны, доверительно сообщаю, что можно скачать исходники самой программы nnCron (и в довесок традиционная плохая новость — это далеко не самая последняя её версия). Помните, Форт — очень лаконичный язык, требующий глубокого предварительного размышления и трансцендентной медитации над кодом, не загрязненной нашим суетным постиндустриальным бытием.

Для пояснения этой мысли просто процитирую первую строчку из книги «Пионеры программирования » знаменитого , начинающего главу №4 про язык Форт таким вот предложением:

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

Гибрид планировщика, автоматизатора и скриптера…

Долго идя от частного к общему, мы наконец-то вышли к перечислению основных направлений, которые эффективно решает nnCron, и вот на что он способен:

    • запускать произвольные программы (как и самого себя) как системные сервисы;
    • запускать задачи «от имени» указанных юзеров;
    • отслеживать и перезапускать просроченные задачи и напоминалки;
    • выключать или «усыплять» компьютер в заданное время, «будить» компьютер, чтобы запустить задачу;
    • отображать/скрывать/закрывать/убивать/сворачивать/разворачивать и прятать в системный трей заданные окна, добавлять в трей произвольные иконки и программы;
    • менять размер и местоположение окон, а также изменять их «прозрачность»;
    • выводить на экран и в лог-файл любые сообщения, в том числе и запросы на выполнение указанных действий;
    • работать с клипбордом, файлами и реестром;
    • эмулировать клавиатурный ввод и операции с мышкой;
    • звонить по модему и класть трубку;
    • воспроизводить аудиофайлы и «пищать» через системный динамик;
    • синхронизировать системное время;
    • присваивать процессам указанный приоритет и прерывать работу любых запущенных процессов;
    • автоматически перезапускаться после фатальных ошибок;
    • скриптовать всё остальное, неограниченно расширяя функциональность программы, на встроенном языке, метаязыке Форт, VBScript/Jscript, и всё это с поддержкой регулярных выражений;
    • nnCron способен отслеживать файлы, флаги, окна, процессы, движения мыши, время простоя компьютера, клавиатурные шорткаты, выход в онлайн/офлайн, появление диска в драйве, наличие хоста в сети (пинг), изменение удаленного ресурса по http-протоколу, количество свободного места на диске, загруженность оперативной памяти и многое-многое другое — после чего как-то автоматически обрабатывать все эти ситуации;
    • для тех, кому нужна «менее навороченная» и одновременно «более легкая» версия программы, специально собрана «лайт»-версия оной, которая тщательно оптимизирована и зачищена от излишеств, где оставлено лишь самое насущное и малогабаритное.

Последние напутствия к действию

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

Во-вторых, пожалуй, самый неприятный и печальный момент — разработка программы заброшена с 2009 года. Отчасти запас прочности (в рамках её функционала), данный ей в последней существующей версии 1.93, позволяет прекрасно себя чувствовать и доныне в полностью автономном от разработчиков режиме жизни, но, как и любая заброшенная вещь, программа всё же начинает морально устаревать. И главная текущая проблема в этом плане — плохая совместимость с Windows 7, для которой она никогда не тестировалась и не предназначалась. Впрочем, ряд добровольцев уже собрали свои собственные неофициальные и «подпиленные сборки» под Win7.

Поэтому обладателям последней Windows можно сначала попробовать «специальные» сборки: можно взять такую от или другую альтернативную от (). У этих обеих сборок есть свои минусы и плюсы, поэтому призываю вас протестировать их и выбрать любимчика самостоятельно. Всем же остальным ОС-пользователям рекомендую воспользоваться от nnSoft.

В-третьих, нужно иметь в виду, что nnCron самой судьбой уготовано работать в тесной связке с родственной утилитой от этого же производителя — nnBackup. Говоря кратко, она на редкость удачна и обладает во многом схожей с nnCron системой устройства (я писал про неё ранее ). При этом даже сложно выделить целевое предназначение этих двух утилит: они одинаково удачно приживаются как на персональном компьютере, так и на серверах под управлением серверных версий Windows (доступный режим работы «как сервис» особенно подходит к последнему варианту).

И в последнюю очередь приведу немаловажную деталь: nnCron бесплатен для граждан стран бывшего СССР (при условии некоммерческого и некорпоративного его использования). Подробную информацию о процедуре бесплатной регистрации можно .

NnCron - компактный (размером менее 1Мб) и мощный планировщик заданий для Windows, распространяющийся бесплатно для частного некоммерческого использования. По сравнению с большинством планировщиков, и в том числе встроенным в Windows MSTask.exe, nnCron позволяет не только запускать задачи в заданное время, но и реагировать на определенные события, такие, как модификация файла, создание, изменение или деактивация окна, запуск или завершение процесса, установление или разрыв Интернет-соединения, и т.п.

Основные возможности nnCron:

  • может быть запущен в качестве службы (сервиса) или как обычное приложение
  • понимает cron-формат (Unix) и управляется с помощью текстовых файлов cron.tab, формат которых совместим с форматом кронтаб-файлов Unix-систем
  • умеет отслеживать и перезапускать просроченные задачи
  • умеет задавать и использовать переменные окружения (environment variables)
  • умеет запускать процессы от имени текущего авторизованного пользователя (WinNT/2000/XP)
  • позволяет запускать плагины (скрипты произвольной сложности), написанные на языке программирования Форт
  • гибко настраивается под конкретные нужды пользователя
  • не требователен к ресурсам компьютера.

Установка nnCron выполняется обычным способом. После завершения инсталляции и запуска службы nnCron, в системном трее появится иконка планировщика. Щелчок правой кнопки мышки на иконке позволяет получить доступ к основному меню программы.
Чтобы выполнить регистрацию nnCron, пеpейдите в его домашний каталог (обычно- C:\Program Files\NNCRON\) и запустите пpогpамму tm.exe с параметром xReg.

tm.exe xReg

В появившемся окошке введите xUSSR регистрация в качестве имени и текущий день недели (по-pусски) вместо паpоля.

Основные настройки программы хранятся в файле nncron.ini домашнего каталога программы. Для изменения настроек удобно пользоваться основным меню, вызываемым правой кнопкой мышки. Выбирается пункт "Settings" ("Параметры")

Настройки программы интуитивно понятны и вполне достаточны для комфортной работы с планировщиком. При необходимости, можно изменить язык программы, выбрать формат и размещение файлов журналов, резервных копий кронтабов, справочной системы, режимов запуска задач, их приоритет, пункты меню и некоторые другие опции.

Кроме настроек, через главное меню программы можно вызвать справку, дополнительные инструменты, которые облегчают создание заданий, отредактировать или выполнить принудительно конкретную задачу, создать новую задачу или напоминание, посмотреть текущий файл журнала nncron.

Создание напоминаний и задач.

Данные о создаваемых для планировщика задачах и напоминаниях, по умолчанию, сохраняются в файле nncron.tab каталога планировщика (.\Program Files\nnCron). Записи задач могут быть представлены в классическом режиме или расширенном .

Классический режим соответствует формату кронтаб-файлов Unix-систем и представляет собой строку, содержащую время в крон-формате и через пробел - команду. Пустые строки и строки, начинающиеся с символа # , не обрабатываются (кроме конструкции #() .

# Minutes Hours Days Months WeekDays Command
*/15 8-16 * * 1-5 checkmail.exe

Первая строка - комментарий, вторая - состоит из пяти полей, разделенных пробелами:


и имени запускаемой программы - checkmail.exe .

Символ * вместо значения определяет "все". Т.е. * в поле означает, что задание должно выполняться все дни месяца. Может быть задано конкретное значение в виде десятичного числа или диапазона чисел. Так, в рассматриваемой строке в поле указано 8-16 - это означает, что задание будет выполняться с 8 часов до 16. Возможно задание значений, разделенных запятой - 8,9,10,11,12,13,14,15,16. В поле запись выглядит так - */15 . Это означает "шаг" - каждые 15 минут. Запись 1-5 в поле означает "с понедельника по пятницу".
В итоге строка будет означать "Выполнять задание checkmail.exe каждые 15 минут каждого часа каждого числа каждого месяца в рабочие дни недели."

Облегченная версия nnCron под названием nnCron Lite , отличается от профессиональной тем, что в ней нет графического интерфейса пользователя, и планировщик может обрабатывать задачи только в классическом режиме. Сами задачи создаются с помощью ручного добавления записей в файл nncron.tab. Расширенный режим - основной и самый мощный синтаксический режим работы nnCron. В расширенном режиме у пользователя появляется возможность создавать именованные задачи (Tasks), каждая из которых запускается в указанное пользователем время и позволяет тонко настраивать и сами выполняемые действия и условия, при соблюдении которых они выполняются.
Описание каждой задачи начинается с такой синтаксической конструкции:

#(имя_задачи

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

)#

Означающей конец записи.

Встретив признак конца записи о задаче, планировщик переключается обратно в классический режим. Сделано это для того, чтобы записи в любом формате могли находиться где угодно в одном и том же файле nncron.tab (кронтабе).

Записи о заданиях в nncron.tab можно создавать как с использованием графической оболочки nnCron, так и редактированием его содержимого с помощью обычного текстового редактора.

Записи, имеющие классический формат, в списке задач, открываемом с помощью графического интерфейса, не отображаются. Они не являются именованными и создаются, изменяются и удаляются вручную, при редактировании файла nncron.tab

Для добавления задачи или напоминания в графической оболочке используется основное меню, открывающееся по щелчку правой кнопки мышки на иконке nnCron в области уведомлений рабочего стола (системном трее).

На первой вкладке ("Время") необходимо задать имя задачи, время старта или событие, по которому произойдет запуск, и учетную запись, с правами которой задача будет выполнена. Если пользователь не указан, то задача будет выполняться с правами системной локальной учетной записи (System Local Account). Необходимо учитывать, что некоторые запускаемые приложения могут быть успешно выполнены только под конкретной учетной записью и требуют загрузки профиля пользователя (приложения MS Office, например).

На вкладке "Действие" нужно определить, что именно должна выполнить создаваемая задача. Выбранный вариант действий вызовет отображение дополнительных опций, указание которых необходимо для успешного выполнения задания.

Вкладка "Дополнительно" вызовет отображение созданной задачи в том виде, в каком она будет записана в файл nncron.tab. Например:

AsLoggedUser - как пользователь, выполнивший вход в систему
Time: 30 9 * * 1-5 * - время в крон-формате
Action: - выбранное действие и его дополнительные опции (ниже)
StartIn: "C:\SCRIPTS\TEST" - рабочий каталог
ShowNormal NormalPriority - приоритет, с которым будет выполняться задача
START-APP: C:\SCRIPTS\TEST\test1.bat - в качестве действия будет использован запуск командного файла test1.bat

Практические примеры задач.

Восстановление Интернет соединения при его разрыве.

Назовем задачу "Reconnect". Используемое для подключения к Интернет соединение, как правило, создается для каждого отдельного пользователя Windows. В примере, задача будет выполняться от имени пользователя, выполнившего вход в систему. Вместо времени выбираем условие По событию и из перечня доступных для обработки планировщиком событий - При Разрыве Интернет соединения

Теперь нужно выбрать вкладку Действие и, из перечня доступных действий - Установить интернет соединение
Затем, необходимо выбрать необходимое соединение, указать связанные с ним имя пользователя и пароль, а также задать число попыток и интервал в секундах между ними.

После сохранения задания, при разрыве подключения к Интернет, планировщик восстановит его, если это технически возможно.
В качестве Интернет подключения может быть выбрано одно из существующих в системе подключений удаленного доступа (dialup, VPN, PPPoE и т.п.). Созданная таким образом задача, будет добавлена в файл nncron.tab в виде:

#(Reconnect
WatchDisconnect
Action:
RASUser: "stm234567"
RASSecPassword: "Qrt3rkJ="
DIAL: "Stream" 10 15
)#

Эту же задачу можно создать и без использования графической оболочки, просто скопировав вышеуказанный текст в файл nncron.tab. После чего, задача появится в списке заданий планировщика и станет доступной для редактирования в контекстном меню правой кнопки, в пункте "Редактировать". Для ее работоспособности необходимо ввести правильный пароль для восстанавливаемого соединения, поскольку, из соображений безопасности, планировщик хранит его в своем внутреннем формате, а не в открытом текстовом виде. Получить пароль в сохраненном nnCron"ом виде можно также с помощью команды

Nncron.exe -ep ПАРОЛЬ

В ответ на такую команду будет отображено окно с текстом хранимого пароля, соответствующим слову "ПАРОЛЬ"

Использование события "Создание/изменения файла".

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

В качестве запускающего задачи события можно выбрать модификацию файла на сетевом диске. И, если создать задачи на нескольких компьютерах, отслеживающих создание или изменение одного и того же файла на сетевом диске, то при наступлении события выполнение задачи начнется на всей группе компьютеров. Кроме того, можно организовать выполнение задачи специальным командным файлом, анализирующим содержимое модифицированного (отслеживаемого планировщиком) файла, и в зависимости от его содержания, выполнить то, или иное задание. Как пример, я использовал подобный прием для автоматической замены некоторых файлов в определенных каталогах нескольких компьютеров, когда источник (версия файлов) заранее неизвестна.

Для анализа содержимого модифицированного файла можно использовать следующую конструкцию

REM FOR /F "параметры" - использование данных из файла
REM Переменная %%I - слово из файла

FOR /F %%I in (Q:\PUBLIC\DIR\startfile.txt) do (
xcopy /Y /S "X:\SourceDir\%%I\*.*" c:\DestDir\*.*
IF %ERRORLEVEL% NEQ 0 net.exe send ADMCOMP XCOPY Error = %ERRORLEVEL% .
REM
...

В данном примере модифицируется содержимое файла Q:\PUBLIC\DIR\startfile.txt. В него записывается имя подкататалога, находящегося на сетевом ресурсе X:\SourceDir\ . Команда xcopy используется для копирования его содержимого на локальный диск C: в каталог DestDir. Процесс запуска задачи можно инициировать выполнением команды

Echo datadir > Q:\PUBLIC\DIR\startfile.txt

После ее выполнения в файле Q:\PUBLIC\DIR\startfile.txt будет записана текстовая строка с именем подкаталога, откуда должны браться исходные файлы для копирования.

    Для запуска выбранных программ по расписанию очень удобно использовать планировщик заданий nnCron (Автор - Николай Немцев). С его помощью можно в указанное время и с заданной периодичностью запускать любые процессы. nnCron LITE распространяется бесплатно, сопровождается очень толковой документацией на русском языке и работает со всеми ОС Windows. nnCron (не LITE) для некоммерческого использования также бесплатен для граждан бывшего СССР, но требует регистрации. Он вобрал в себя все лучшее из известного в мире UNIX планировщика cron. Скачать последнюю версию nnCron LITE (230кб) и nnCron можно отсюда: www.nncron.ru
    Основные возможности nnCron:
-- может быть запущен в качестве службы (сервиса) или как обычное приложение
-- понимает cron-формат (Unix) и управляется с помощью текстовых файлов cron.tab, формат которых совместим с форматом кронтаб-файлов Unix-систем
-- умеет отслеживать и перезапускать просроченные задачи
-- умеет задавать и использовать переменные окружения (environment variables)
-- умеет запускать процессы от имени текущего авторизованного пользователя (WinNT/2000/XP)
-- позволяет запускать плагины (скрипты произвольной сложности), написанные на языке программирования Форт
-- гибко настраивается под конкретные нужды пользователя
-- не требователен к ресурсам компьютера.

    nnCron LITE значительно проще в использовании, чем nnCron, но и скромнее по возможностям. Для примера рассмотрим вариант использования nnCron LITE для решения следующей задачи:

    В локальной сети необходимо в 17.00 ежедневно, кроме выходных, передавать архив каталога C:\BASE с компьютера PC1 в каталог D:\ARHIV на компьютер PC3, и в 22.00 ежедневно выключать компьютер PC3 и включать его же в 8.00. а в 8.30 выполнить на нем программу program.exe.

    Напрашивается простое решение с использованием nncron на каждой машине, однако мы усложним ситуацию тем, что будем считать компьютер PC2 компьютером администратора с установленным nncron, а PC1 и PC3 - обычными компьютерами пользователей. Т.е. управлять всеми процессами будет PC2. Это накладывает некоторые ограничения на его конфигурацию - ОС на нем должна быть Win2k/XP с правами администратора по отношению к ресурсам остальных компьютеров.
    Для решения данной задачи нам потребуется не только nncron, но и некоторые из утилит пакета Pstools.


Шаг первый - устанавливаем и настраиваем nncron на компьютере PC2.

    Для начала скачиваем nnCron LITE На сегодняшний день на сайте www.nncron.ru выложена версия nncron Lite в виде исполняемого модуля nncronlt116.exe. Запускаем его, выбираем язык (лучше, конечно, выбрать русский), вариант установки (для одного пользователя или для всех на данном компьютере) и каталог, где будет размещаться программа. После успешного завершения инсталляции вы увидит итоговое окно, сообщающее, что инсталляция завершена и сервис nnCron LITE запущен. В меню "Программы" появился раздел nnCron LITE, позволяющий запустить или остановить сервис.
    В целом все готово к работе, однако желательно бы установить nncron в качестве сервиса системы, чтобы он запускался автоматически независимости от входа пользователя в систему. Для этого переходим в папку C:|\Program Files\cron и запускаем install_svc.bat . В этой же папке находится текстовый файл cron.tab , содержимое которого является основным инструментом управления запуском заданий. После инсталляции он содержит следующее:

#CRONTAB FILE
# Classic crontab format:
# Minutes Hours Days Months WeekDays Command
#*/15 8-16 * * 1-5 checkmail.exe

    Строки, начинающиеся с символа # являются комментариями и планировщиком не обрабатываются (как и пустые строки). Т.е. данный файл не содержит ничего, кроме комментариев, дающих краткое описание классического crontab - формата (есть еще и расширенный формат) и пример для запуска checkmail.exe.
Последняя строка (cron-формат) состоит из пяти полей, разделенных пробелами:

и имени запускаемой программы - checkmail.exe .

    Символ * вместо значения определяет "все". Т.е. * в поле означает, что задание должно выполняться все дни месяца. Может быть задано конкретное значение в виде десятичного числа или диапазона чисел. Так, в рассматриваемой строке в поле указано 8-16 - это означает, что задание будет выполняться с 8 часов до 16. Возможно задание значений, разделенных запятой - 8,9,10,11,12,13,14,15,16. В поле запись выглядит так - */15 . Это означает "шаг" - каждые 15 минут. Запись 1-5 в поле означает "с понедельника по пятницу".
В итоге строка будет означать "Выполнять задание checkmail.exe каждые 15 минут каждого часа каждого числа каждого месяца в рабочие дни недели."

    Для проверки создадим простое задание:

"Запускать каждые 2 минуты интерпретатор команд Windows".

Строка cron.tab должна быть следующей:

*/2                      *                 *                 *               *                       cmd.exe

Добавляем в cron.tab строку:

*/2 * * * * cmd.exe

И убеждаемся, что задание выполняется. Если это не так, смотрим содержимое папки /log , где nncron ведет журнал своих действий. Причиной обычно является неверное имя задачи или отсутствие ее в путях поиска, заданных переменной окружения PATH. Если вы используете указанную выше строку crontab - формата в Win9x/Me, то получите ошибку, поскольку интерпретатор команд в этих ОС - command.com, а не cmd.exe и строка должна была бы выглядеть так:

*/2 * * * * command.com


Шаг второй - создаем задания для nncron.

    Убедившись, что nncron работает, удаляем нашу тестовую строку и приступаем к формированию строк для выполнения нашего задания.
Для начала нам необходимо в 17.00 ежедневно, кроме выходных, передавать архив каталога C:\BASE с компьютера PC1 в каталог D:\ARHIV на компьютер PC3. C формированием условий запуска задания проблем не возникает, но какое задание запускать?. Решений может быть несколько, но рассмотрим самое простое - nncron будет запускать не исполняемый модуль, а bat-файл, в котором будет выполняться подключение сетевых дисков компьютеров PC1 и PC3 и архивирование с помощью архиватора, запускаемого из командной строки. Пусть этот файл называется arh.bat и находится в каталоге C:\SCRIPTS нашего компьютера PC2.

      0                 17                 *                 *                 1-5                 c:\scripts\arh.bat

Содержимое arh.bat может быть следующим (строки, начинающиеся с "rem " в командных файлах являются комментариями):

rem Подключаем диск C компьютера PC1 как сетевой диск M:
net use M: \\PC1\C
rem Подключаем диск D компьютера PC3 как сетевой диск N:
net use N: \\PC3\D
rem Архивируем C:\BASE компьютера PC1 в D:\ARHIV компьютера PC3 с помощью архиватора arj
arj a N:\ARHIV\PC3base.arj M:\BASE\*.*
rem удаляем сетевые подключения
net use N: /delete
net use M: /d

    Запускаем arh.bat и убеждаемся, что он работает. После чего добавляем в cron.tab строку:

0 17 * * 1-5 C:\scripts\arh.bat

    Первая часть задания выполнена. Вторая (в 22.00 ежедневно выключать компьютер PC3 и включать его же в 8.00. а в 8.30 выполнить на нем программу program.exe) потребует наличия утилит командной строки, позволяющих выполнять удаленное администрирование. Для чего воспользуемся утилитами из пакета PsTools от Sysinternals и broadc.exe. На всякий случай я разместил здесь ссылки на те утилиты, которыми пользуюсь сам:

Psshutdown - утилита выключения/ перезагрузки компьютера (скачать, 126кб)
Позволяет выключать или перезагружать как локальный, так и удаленный компьютер. Формат командной строки:

psshutdown -s|-r|-h|-d|-k|-a|-l|-o [-f] [-t nn] [-m "Сообщение "] [-u Username [-p Password]] [\\computer]
    Примеры использования:
psshutdown -k \\PC3 - выключить компьютер PC3. Вместо имени компьютера можно указать его IP-адрес. Если ничего не указано, то имеется в виду локальный компьютер.
psshutdown -r \\192.168.0.1 - перезагрузить удаленный компьютер с IP-адресом 192.168.0.1.
Psexec - утилита запуска заданий на удаленном компьютере из пакета PSTools Microsoft (Sysinternals). (скачать PSTools.zip)
Формат командной строки:

psexec \\computer][-u user [-p psswd]][-s|-e][-i][-c [-f|-v]][-d][- ][-a n,n,...>] cmd

psexec \\PC3 program.exe - выполнить на удаленном компьютере program.exe. Выполняемая программа должна быть в путях поиска.
psexec \\PC3 -c C:\SCRIPTS\program.exe Выполняемая программа копируется на удаленный компьютер из C:\SCRIPTS и выполняется.
Broadc - утилита для включения компьютера по локальной сети. (скачать, 32кб)
Формат командной строки:

broadc.exe MAC-адрес сетевой карты 255.255.255.255 67
    Примеры использования:
bbroadc.exe 0002b3d8b4e6 255.255.255.255 67 - включить компьютер, MAC - адрес сетевой карты которого равен 0002b3d8b4e6 . Материнская плата и сетевая карта должны обеспечивать удаленное включение и в BIOS должна быть включена поддержка расширенного управления питанием.

Создаем расписание заданий:

      0                 22                 *                 *                 *                 psshutdown
      0                 8                   *                 *                 *                 broadc
      30               8                   *                 *                 *                 psexec

Лирику можно пропускать и переходить к отдельно отмеченной части поста ниже.

Мне могут возразить, что windows7, к примеру, имеет неплохой собственный планировщик с богатыми возможностями. Но он мне не нравится. Я подозреваю, что ресурсы кушаются, удобство создания новых задач … на любителя. И т.д. Кроме того многие вещи не возможны в принципе (без достаточно высококвалифицированного вмешательства) …

Завтра настроим конвертер и можно будет пользоваться…

К примеру мой (временный, на скорую руку) код выглядит вот так:

#(vdasus.4pic NoLog ;" не вести лог SingleInstance ;" Пока задача работает на запускать её еще раз - надо, чтобы не сработала на появление thumbnail WatchDir: "D:\4Pics\" ;" Смотреть директорию Action: RECURSIVE FILESONLY SKIPERRORS ;" Если задача запустилась - найти все появившиеся файлы FOR-FILES: "D:\4Pics\*" RE-MATCH: "%FOUND-FILENAME%" "/\b(th_)?!\w+\.((gif)|(jpeg)|(jpg)|(png)|(ico)|(bmp))/i" ;" Если есть файлы - картинки IF ShowMinimized NormalPriority QSTART-APPW: "C:\Program Files\_APP\vdush2\vdushc2.exe" %FOUND-FULLPATH% ;" Запустить программу конвертора для каждого WIN-ACTIVATE: "Semagic" ;" Активировать приложение Semagic SEND-KEYS: "^v{ENTER}" ;" Послать туда Ctrl+V (Edit \ Paste) ShowNormal NormalPriority ;" Положить через ftp на хостинг START-APPW: winscp.exe /console /command "open ftp://zzzz@zzz:[email protected]" "option transfer binary" "put %FOUND-FULLPATH%" "exit" THEN ;FOR-FILES RECURSIVE FILESONLY SKIPERRORS FOR-FILES: "D:\4Pics\*" RE-MATCH: "%FOUND-FILENAME%" "/th_\w+\.((gif)|(jpeg)|(jpg)|(png)|(ico)|(bmp))/i" ;" Найти появившиеся файлы thumbnail IF ShowNormal NormalPriority ;" Положить через ftp на хостинг START-APPW: winscp.exe /console /command "open ftp://zzzz@zzz:[email protected]" "option transfer binary" "put %FOUND-FULLPATH%" "exit" THEN ;FOR-FILES)#

Не пугайтесь – вам не надо будет писать это самим:) Надо будет только подправить пару параметров…

Завтра остальное:) Просто попробуйте – это не так сложно, как выглядит… После завтрашней настройки увидите как это просто. Пока просто установите и зарегистрируйте nncron…