Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #29, АПРЕЛЬ 2003 г.

ДОМАШНИЙ ГОСПЛАН - обзор планировщиков задач

Kirion (kkr@mailru.com)

Спецвыпуск Xakep, номер #029, стр. 029-092-1


Часто бывает так, что нужно уйти по неотложным делам или сделать работу по дому, или банально поспать. А комп в это время ничем не занят. Не выполняются трудоемкие и долгие процессы, не используется халявный ночной Инет. А как бы было хорошо, если бы в твое отсутствие ни одна секунда процессорного времени не пропадала зря. Думаешь, нереально? Собственно, я не понимаю, что тебе мешает...

Интегрированное планирование

...Ибо всем известно, что существует достаточно большое количество программ, выполняющих функции планировщика. Такая программа даже есть в... Кто сказал - встроенный планировщик? Мальчик, встань, покажись аудитории. Как тебя зовут, мальчик? Так тебя зовут Билли! Поприветствуем все Билли, охрана, выведите его из зала. Так вот, даже в винду встроен планировщик задач. Не то что бы он отличался большой функциональностью, но это уже не просто будильник :). Планировщик задач представляет собой апплет из панели управления или команду консоли At. Итак, "панель управления" > "назначенные задания" > "добавить задание". Если на компе нет назначенных заданий, то при запуске "мастера планирования заданий" возможен небольшой подвисон - это стартует служба планировщика. Выбираем прогу, тип запуска (каждый день, неделю, месяц, один раз, при загрузке, при входе), время запуска и пользователя, под чьим именем будет выполняться задание. После создания задания можно всегда подкорректировать его свойства, а также задать максимальное время на выполнение задания, запуск задания через определенное время простоя компа и параметры, связанные с энергопотреблением. Если для создания задачи используется команда At, то можно создать задачу на удаленном компьютере. Вот вроде и все возможности встроенного планировщика. Много чего не хватает для полного счастья, однако в сочетании с командным языком виндовой консоли можно создавать достаточно навороченные батники, которые будут удовлетворять почти всем твоим запросам.

Всемогущий Кронос

Если при прочтении последних строчек про написание батников в cmd ты брезгливо поморщился, то тебе точно не стоит ставить прогу nnCron (www.nncron.ru). Юниксоиды без труда вспомнят, что демона-планировщика для юниха кличут Cron'ом. Создатель nnCron, видимо, хотел повторить его функциональность, и это ему удалось. Более того, nnCron гораздо функциональнее и удобнее своего собрата. Несмотря на то, что задания достаточно удобно добавлять и через гуевый интерфейс (а тут есть задания и напоминания a la будильник), истинная мощь проги достигается при ручном написания crontab-файлов. Их синтаксис частично заимствован из Cron'а, но в основном представляет собой конструкции языка Форт, на котором написан и сам nnCron (признаюсь к своему стыду, до того, как залез в доки к проге, и не подозревал, что есть такой язык - Форт). С помощью визуального интерфейса можно создавать задания, выполняющиеся по времени и через определенные интервалы времени (это стандартно), а можно создавать задания, выполняющиеся по событию. Среди возможных событий: загрузка и выключение компьютера, вход пользователя, установление и разрыв связи и другие. Особенно меня привлекает событие: нажатие клавиши. nnCron может служить неплохим менеджером горячих клавиш, вот уж не ожидал :). А еще можно задать несложное условие для задания вроде наличия связи, открытого окна или запущенного процесса, существования файла. Кстати, в качестве заданий может выступать не только запуск прог или открытие документов, но и запуск java и vbscript, установка связи, закрытие окон, завершение процессов и прочее. Неплохие возможности, не так ли? Но если ты думаешь, что это все, на что способна прога, - загляни в доки, тебе станет плохо :). Если программировать crontab-файлы вручную - то станет возможным написание задание с ветвлением if... else... конструкции case. Можно отслеживать изменения на веб-страницах и локальных папках, следить за доступностью определенных хостов, работать с реестром и удаленными соединениями, сворачивать окна в трей. Посылать сообщения окнам, выполнять перемещение курсора и ввод с клавиатуры. Доступны средства удаленного администрирования (просто подсоединяешься с помощью telnet на указанный в настройках порт и работаешь с консолью nnCron). Кроме того, nnCron поддерживает регулярные выражения в духе перла (отличия незначительные), так что поиск и замена не должны представлять проблему. Единственный возможный минус - в Форте используется так называемая инверсная польская запись, а к ней сложно привыкнуть (для тех, кто в первый раз о таком слышит, приведу простой пример инверсной записи: 4 2 +. Это означает 4+2. Или посложнее: 2 3 4 1 + - +. Это означает 1+4-3+2. Конструкция условного оператора выглядит так: "условие" if "действие" else "действие" ). Хотя это дело практики, а ради таких возможностей можно и попрактиковаться :). Ко всему вышесказанному можно добавить, что программа является бесплатной для жителей бывшего СССР (обожаю таких программистов :)), весит всего 350 кило. Почти столько же весит файл справки в chm :). Настоятельно рекомендую скачать его с сайта автора, равно как и небольшой справочник по Форту - писать кронтабы станет не в пример легче :).

Содержание  Вперед на стр. 029-092-2