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

20.04.2019

    nnCron - компактный (размером менее 1Мб) и мощный планировщик заданий для Windows, распространяющийся бесплатно для частного некоммерческого использования. По сравнению с большинством планировщиков, и в том числе встроенным в Windows MSTask.exe, nnCron позволяет не только запускать задачи в заданное время, но и реагировать на определенные события, такие, как модификация файла, создание, изменение или деактивация окна, запуск или завершение процесса, установление или разрыв Интернет-соединения, и т.п.
    Основные возможности nnCron:
-- может быть запущен в качестве службы (сервиса) или как обычное приложение
-- понимает cron-формат (Unix) и управляется с помощью текстовых файлов cron.tab, формат которых совместим с форматом кронтаб-файлов Unix-систем
-- умеет отслеживать и перезапускать просроченные задачи
-- умеет задавать и использовать переменные окружения (environment variables)
-- умеет запускать процессы от имени текущего авторизованного пользователя (WinNT/2000/XP)
-- позволяет запускать плагины (скрипты произвольной сложности), написанные на языке программирования Форт
-- гибко настраивается под конкретные нужды пользователя
-- не требователен к ресурсам компьютера.

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

Чтобы выполнить регистрацию nnCron, откройте домашний каталог программы (обычно- C:\Program Files\NNCRON\) и запустите tm.exe с параметром xReg.
tm.exe xReg
В появившемся окошке введите xUSSR регистрация в качестве имени, и текущий день недели на русском языке в качестве па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 -

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

    Именно для этих задач в Linux используется системный сервис cron. Это планировщик, который позволяет выполнять нужные вам скрипты раз в час, раз в день, неделю или месяц, а также в любое заданное вами время или через любой интервал. Программа часто используется даже другими службами операционной системы. В этой статье мы рассмотрим как выполняется настройка Cron и разберем основные часто используемые примеры.

    Фактически, Cron - это сервис, как и большинство других сервисов Linux, он запускается при старте системы и работает в фоновом режиме. Его основная задача выполнять нужные процессы в нужное время. Существует несколько конфигурационных файлов, из которых он берет информацию о том что и когда нужно выполнять. Сервис открывает файл /etc/crontab, в котором указаны все нужные данные. Часто, в современных дистрибутивах там прописан запуск утилиты run-parts, которая запускает нужные скрипты из следующих папок:

    • /etc/cron.minutely - каждую минуту;
    • /etc/cron.hourly - каждый час;
    • /etc/cron.daily - каждый день;
    • /etc/cron.weekly - каждую неделю;
    • /etc/cron.monthly - каждый месяц.

    В этих папках должны находиться скрипты, которые нужно выполнять с указанным интервалом. Скрипты должны иметь права на выполнение и их имя не должно содержать точки. Это очень сильно облегчает работу с планировщиком для новых пользователей. Также в файле crontab прописан запуск команды anacron, которая работает так же как и cron, только предназначена для задач, которые нужно выполнять раз в длительный период, например, раз в день, неделю, месяц, год.

    Она позволяет выполнять их даже если компьютер работает не всегда и время от времени выключается. Дата выполнения задания последний раз записывается в файл /var/spool/anacron, а затем, при следующем запуске anacron проверяет был ли запущен нужный процесс в нужное время, и если нет, то запускает его. Сам же сервис cron больше рассчитан на выполнение задач в течение дня или с точно расписанным временем и датой.

    Настройка Cron

    Для настройки времени, даты и интервала когда нужно выполнять задание используется специальный синтаксис файла cron и специальная команда. Конечно, вы всегда можете отредактировать файл /etc/crontab, но этого делать не рекомендуется. Вместо этого, есть команда crontab:

    Ее всегда желательно выполнять с опцией -e, тогда для редактирования правил будет использован ваш текстовый редактор по умолчанию. Команда открывает вам временный файл, в котором уже представлены все текущие правила cron и вы можете добавить новые. После завершения работы команды cron файл будет обработан и все правила будут добавлены в /var/spool/cron/crontabs/имя_пользователя причем добавленные процессы будут запускаться именно от того пользователя, от которого вы их добавляли.

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

    Синтаксис crontab

    Как я уже говорил, время задается особым синтаксисом, давайте рассмотрим синтаксис настройки одной задачи cron:

    минута час день месяц день_недели /путь/к/исполняемому/файлу

    Нужно сказать, что обязательно нужно писать полный путь к команде, потому что для команд, запускаемых от имени cron переменная среды PATH будет отличаться, и сервис просто не сможет найти вашу команду. Это вторая самая распространенная причина проблем с Cron. Дата и время указываются с помощью цифр или символа "*". Этот символ означает, что нужно выполнять каждый раз, если в первом поле - то каждую минуту и так далее. Ну а теперь перейдем к примерам.

    Примеры настройки cron

    Сначала можно посмотреть задачи cron для суперпользователя, для этого можно воспользоваться опцией -l:

    Вы можете удалить все существующие задачи командой -r:

    Давайте предположим, что нам нужно запускать от имени суперпользователя наш скрипт по адресу /usr/local/bin/serve. Какой-нибудь обслуживающий скрипт. Самый простой пример - запускать его каждую минуту:

    * * * * * /usr/local/bin/serve

    0 * * * * /usr/local/bin/serve

    Запускаем в нулевую минуту нулевого часа, каждый день, это в 12 ночи:

    0 0 * * * /usr/local/bin/serve

    0 0 1 * * /usr/local/bin/serve

    Можно в любой день, например, 15 числа:

    0 0 15 * * /usr/local/bin/serve

    В первый день недели первого месяца года, 0 часов 0 минут:

    0 0 * 1 0 /usr/local/bin/serve

    Или в нулевой день недели каждого месяца:

    0 0 * * 0 /usr/local/bin/serve

    Вы можете выбрать любую минуту, час и день недели, например, 15.30 во вторник:

    30 15 * * 2 /usr/local/bin/serve

    Понедельник считается первым днем, воскресенье - это седьмой или нулевой день. Еще можно писать сокращенное название дня недели, например sun - воскресенье:

    30 15 * * sun /usr/local/bin/serve

    Для того чтобы указать определенный интервал нужно использовать символ "-", например, каждый час, с семи утра до семи вечера:

    0 7-19 * * * /usr/local/bin/serve

    Если нужно запустить команду несколько раз, можно использовать разделитель ",". Например, запустим скрипт в 5 и 35 минут пятого (16:05 и 16:35), каждый день:

    5,35 16 * * * /usr/local/bin/serve

    Вы можете захотеть не указывать отдельно время, а просто указать интервал, с которым нужно запускать скрипт, например, раз в 10 минут. Для этого используется разделитель косая черта - "/":

    */10 * * * * /usr/local/bin/serve

    Кроме того, для некоторых часто используемых наборов были придуманы переменные, вот они:

    • @reboot - при загрузке, только один раз;
    • @yearly, @annually - раз год;
    • @monthly - раз в месяц;
    • @weekly - раз в неделю;
    • @daily, @midnight - каждый день;
    • @hourly - каждый час.

    Например, вот так просто будет выглядеть команда запуска скрипта раз в час:

    @hourly /usr/local/bin/serve

    Если же вы собрались добавить скрипт в одну из папок, то, как я уже говорил, нужно чтобы его имя было без точек и у него были права на выполнение:

    sudo vi /etc/corn.daily/basckup

    Скрипт должен выглядеть подобным образом. Теперь вы знаете как настроить cron, осталось проверить как все работает.

    Отладка работы

    После того как вы настроили правила, еще хотелось бы проверить работают ли они. Для этого ждем того времени, когда скрипт уже должен быть выполнен и смотрим лог cron. Иногда он находится в /var/log/cron, а иногда пишется в syslog. Например, у меня в crontab есть такая строка:

    Она должна выполняться в 19.40 каждый день, теперь смотрим лог:

    grep CRON /var/log/syslog

    И видим что в нашем логе она действительно есть и выполняется целиком успешно. Если бы были какие-либо ошибки, то тут же было бы выведено сообщение.

    Если нужно проверить скрипт, который находится в одной из специализированных папок, то тут еще проще, просто запустите run-paths, передав ей в параметр нужную папку или даже сам скрипт:

    sudo run-paths /etc/cron.daily/

    Выводы

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

    Z-Cron 4.2.0.8

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

    Возможности Z-Cron:
    Планирование задач:
    Запуск и остановка приложений;
    Вызов или сохранение веб-сайтов;
    Загрузка документов;
    Запуск, остановка и мониторинг системных служб;
    Копирование файлов и каталогов;
    Удаление файлов и каталогов;
    Очистка каталогов;
    Архивирование и сжатие файлов и каталогов;
    Переключение компьютеров в сети или выключение;
    Автоматизированное переключение электрических устройств, например, с Z-USBswitch;
    Установление и разъединение интернет / VPN соединения (модем / ISDN);
    Нижеперечисленные задачи могут быть запущены автоматически по времени (с 5-минутными интервалами):
    Ежедневно (каждый х дней);
    Еженедельно (х недель, при этом вы можете выбирать день недели);
    Ежемесячно (в х календарный день или день недели х в месяц);
    Регулярное резервное копирование данных (например, с Z-DataDVD или Z-DATdump);
    Автоматическое переключение электрических устройств или оборудования (например, с Z-ParSwitch);
    Автоматическая передача данных FTP (например, с Z-FTPcopyII);
    Поиск вирусов.

    Требования для работы Z-Cron;
    600 МГц;
    512 Мб оперативной памяти;
    10 Мб места на HDD;
    Мышка.

    NeoSpy - программа для слежения за компьютером.

    — Проверка верности супругов;
    — Контроль детей в интернете;
    — Вычисление нерадивых сотрудников на работе.

    NeoSpy перехватывает и отправляет вам на почту всю переписку, снимки экрана, посещаемые сайты и пароли.

    PasswordSpy - программа для восстановления сохраненных паролей из браузеров и почтовых программ.

    — Восстановление утерянных паролей;
    — Поддержка больше 100 программ (ie, chrome, opera, firefox, outlook, the bat! и другие) ;
    — Портативная версия может запускаться с флешки.

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