Портал для веб-мастера
Вход пользователей
Поиск статей
WoWeb.ru » Статьи » Операционные системы » Linux/Unix

Планировщик задач

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

Cron — это программа, выполняющая задания по расписанию, если быть более точным, она известна как демон. Демон — это сервисная программа, которая исполняется в фоне, ожидая инструкций. Когда она получает их, она исполняет их и, закончив, опять переходит в спящее состояние.
Cron обычно запускается, когда происходит переключение на один из уровней запуска (runlevel). Чтобы убедиться, что он запущен, дайте следующую команду:
ps ax | grep crond
Если вы получите ответ похожий на это:
root 311 0.0 0.7 1284 112? S Dec24 0:00 crond
root 8606 4.0 2.6 1148 388 tty2 S 12:47 0:00 grep crond
то Cron уже запущен и вы готовы использовать его. Если вы не получили сообщение о "crond", тогда вы должны запустить этот демон, введя
crond
Cron особенно полезен, когда вам нужно запускать программы резервного копирования и/или сервисные программы, присматривающие за системой. Чтобы сказать cron, когда запускать программу, вы должны заполнить несколько полей. Каждая отдельная программа, которая отмечена в расписании cron, помещается в файл crontab. Поля определены следующим образом:
Min Hour DOM Month DOW User Cmd
Описание их значений просуммированно следующим образом: 
Min — указывает минуты запуска скрипта; значение: от 0 до 59.
Hour — указывает час, в который должен запускаться скрипт; значения от 0 до 23, где 0 это полночь.
DOM — день месяца, в который вы хотите выполнять команду, т.е. чтобы запускать команду 23 числа каждого месяца, DOM должен быть равен 23.
Month — месяц, в который необходимо запускать скрипт; значения лежат в пределах от 1 до 12, где "1" это Январь и "12" Декабрь, или же можно указать первые три буквы месяца.
DOW — день недели, или как цифровое значение от 0 до 7 (0 и 7 означают Воскресенье) или как и название месяца, используя первые три буквы.
User — кто исполняет программу.
Cmd — путь и имя исполняемого(ой) скрипта/программы.
Вы можете использовать "*" (без кавычек) в любом поле, обозначающем время, обозначая таким образом "каждую минуту", "каждый час" и т.д.
Итак, помня приведенное выше описание, вот несколько правильных примеров:
# Эта команда запускается по прошествии 1й минуты каждого часа
01 * * * * root /usr/bin/script
# Эта команда запускается каждый день в 8:17 утра
17 8 * * * root /bin/mail
# Эта команда запускается каждый день в 8:17 вечера
17 20 * * * root /usr/bin/fetch
# Эта команда запускается в 4 утра каждое Воскресенье
00 4 * * 0 root /bin/qweb
# Эта команда запускается в 4:42 утра каждое первое число
42 4 1 * * root /usr/bin/squidlog
# Эта команда запускается каждый час 19го июля
01 * 19 07 * root /usr/bin/xman
Возможны и более изощренные методы указания времени: запустите "man 5 crontab", если хотите узнать о них.
Наиболее часто устанавливаемая на Линукс-системы версия cron — это vixie-cron, и поэтому в директории /etc/ должен быть файл crontab. Откройте его, используя выбранный вами текстовый редактор, и вы должны найти что-то вроде этого:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root@grangedairy.linux
HOME=/

# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
Здесь: переменная SHELL указывает используемый командный интерпретатор, PATH указывает путь к большинству используемых программ, опция MAILTO — кому будет отослан вывод cron о результатах выполнения (если вас это раздражает, то вы можете удалить эту переменную), cекция после #runparts предназначена для того, чтобы все скрипты, например в директории /etc/cron.daily, исполнялись каждый день. Итак, чтобы добавить приведенные выше примеры в ваш crontab, вам нужно всего лишь вставить их в этот файл. Затем сохраните файл. Последнее, что нам нужно сделать, это указать cron, что мы редактировали файл. Это делается при помощи следующей команды:
crontab -u root /etc/crontab
Cron также имеет способность разрешать и запрещать конкретным пользователям свое использование. Чтобы добиться этого, нужно создать два файла с именами cron.allow и cron.deny в директории /etc.
Эти файлы работают так: если вы, например, хотите, чтобы никто не имел доступа к cron, то вы должны добавить строчку "ALL" в файл cron.deny; если вы хотите, чтобы только определенные люди использовали cron, то вы должны добавить их имена в cron.allow.
Вместо того, чтобы редактировать файл каждый раз, более простым способом будет использовать следующую команду:
cat username >>/etc/cron.allow
Вот и все!

Автор: X-Stranger · Добавлена: 2002-09-09
Просмотров: 2611 · Рейтинг: 4.5

Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Категории раздела
Flash
Apache
WWW
PhotoShop
Веб-дизайн
Раскрутка и реклама
Базы данных
3D графика
Хостинг
Истории веб-мастеров
Web-технологии
Сетевая безопасность
Программирование для Web
Операционные системы

Новые статьи
Лучшие статьи
Популярные статьи
Комментируемые статьи
Разделы сайта
Скрипты
Статьи
Шрифты
Флэш исходники
HTML шаблоны
Партнерки
Клипарты
Смайлы
Фоны
Гифы
Иконки
Опрос сайта
Ведете ли вы блог?
Всего ответов: 60113
Наша кнопка
WoWeb.ru - портал для веб-мастера