ГлавнаяРегистрацияВход Приветствую Вас Гость | RSS
   
Меню сайта
Разделы новостей
mp3player
Главная » 2007 » Июль » 8 » Планировщик задач
Планировщик задач
16:26
© Copyright 2005 X-Stranger



Наверняка вы хоть раз обнаруживали, что выполняете похожие задания в течение дня и хотели, чтобы существовала программа, позволяющая автоматизировать это. Подобная программа уже есть. Это 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

Вот и все!

Категория: Работа с Linux | Просмотров: 492 | Добавил: VVS | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Форма входа
Наш опрос
Чего Вам не хватает на сайте?
Всего ответов: 21
Друзья сайта
Статистика
Возраст