Планировщик задач Cron
Автор: Paladinovolk | Категория: Сайтостроение Среда 2 Декабрь 2009Сегодня мне пришлось столкнутся с утилитой Cron. Про нее можно много нарыть в интернете и почитать мануалы.
Единственное что я знал так это то, что Cron — это демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в заданное время.
Получается что эта утилита, позволяет запускать скрипты или задания в определенное время или периодически.
Настраивается он через основной файл crontab (располагается в каталоге /etc), где прописываются задания, которые будут выполняться.
Для редактирования файла crontab используется специальная одноименная программа crontab, позволяющая не прерывать процесс cron на время редактирования.
Так же для удобства пользователей во многих системах (Например: cPanel) есть специальные программы графического интерфейса управления cron.
Или можно использовать подключение к серверу по протоколу ssh версии 2. Для пользователей Windows подойдет SSH-клиент PuTTY, распространяющийся бесплатно.
Обычно файл crontab имеет вид:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
15 * * * * root cd / && run-parts –report /home/host/etc/cron
5 0 * * * root $HOME/bin/daily.job >> $HOME/log/daily 2>&1
#
Синтаксис используется следующий:
Минуты Часы День_месяца Месяц День_недели Пользователь Команда
Таблица crontab состоит из 6 колонок, разделяемых пробелами или табуляторами.
Первые пять колонок задают время выполнения, в них может находиться число, список чисел, разделённых запятыми, диапазон чисел, разделённых тире, или символ «*».
Все остальные символы в строке интерпретируются как выполняемая команда с её параметрами.
Т.е. наша запись: 15 * * * * root cd / && run-parts –report /home/host/etc/cron
означает следующее – в 15 минут каждого часа и каждого дня запускать команду «cd / && run-parts –report /home/host/etc/cron» от имени пользователя root.
В данном случае, в качестве задания используется запускаемый скрипт или программа, которая находится в указанном каталоге.
Пример 1. Нам необходимо запускать скрипт /home/host/script.php каждый час.
Формируем базовую строку:
* */1 * * * php /home/host/script.php
При запуске php скриптов, вместо имени пользователя «root» используется «php»
Пример 2.
Необходимо запускать скрипт каждые 3 часа в 0 минут часа каждую субботу и воскресенье:
0 */3 * * 0,6 user /home/user/script.sh
Этот пример можно записать и в другом виде:
0 0,3,6,9,12,15,18,21 * * 6,7 user /home/user/script.sh
Формат данных для таблицы crontab:
| параметр | значения |
| минуты | 0-59 |
| часы | 0-23 |
| дни месяца | 1-31 |
| месяцы | 1-12 |
| дни недели | 0-7 (0 или 7 для воскресенья) |
Воскресенье может указываться как 0 (американский стандарт), так и 7 (Российский стандарт).
Сrontab начинает работать немедленно после установки задания.
