Студия web-дизайна Хостмэйк
Наши работыКонтактыО компанииОтзывыГлоссарийСтатьи

16.02.2006

Используем Cron

Статьи Программирование на PHP и Perl

Данная заметка предназначенна для тех, кто
собирается работать с cron, но еще не знает как все это делается. Я в кратце
попробую объяснить что такое cron, для чего он нужен да и как вообще с ним
работать. Надеюсь, что приведенная тут информация будет интересна и может быть
даже полезна :)

Итак что такое cron... cron это программа которая
позволяет вам в определенные вами моменты времени производить те или иные
действия. Например запускать на выполнение какую либо программу или скрипт,
обновлять данные и многое другое. Кстати, сразу же замечу, что cron это кусок от
unix , так что не ищите его на Windows :) Там для этой цели используется
совершенно другая вещь.

Очень часто cron используется для ротации логов,
обновления сайтов выполнения каких нибудь ежеминутных проверок или прочего. Так
например я его использую в качестве помощника по архивации своего сайта.
Написанный скрипт по архивации всех данных запускается по крону каждую неделю, в
следствии чего я избавлен от головной боли 'а не забыл ли я чего
архивнуть...
'.

Да ну ладно, я думаю вы и так знаете (или уже
догадались) для чего нужен крон. Так что посмотрим, как все это
работает.

Для начала можно проверить, а запущен ли вообще этот самый крон
?

Команда ps ax |grep cron должна вывести вам то-то похожее на


407 ?      S  0:00 crond
744 pts/0  S  0:00 grep
cron

Т.е. если вы видете crond - то все в порядке, крон на
месте.

Иначе вам просто 'повезло', либо на вашей машине не установлен
крон, либо функции крона выполняет какой-то другой софт. Хотя такие ситуации
необычайно редки.

Так что будем считать что все в порядке, и двинемся
далее.
pages::
Как правило все ваши данные (задания) для крона хранятся по
адресу /var/spool/cron/ в файле с именем соответствующим вашему логину.
Например /var/spool/cron/vadim

Внутри файл выглядит следующим
образом:
SHELL=/bin/bash 
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=vadim
HOME=/home/vadim
# run-parts 01 * * * *
command 02 4 * * * command
Первые
четыре строки просто обозначают настройку параметров окружения и на них не стоит
обращать внимание (как в прочем и менять тоже), так как это задается уже самой
системой.

А вот на следующие строки внимание уже стоит
обратить...

Формат этих строк выглядит следующим образом:

Нужная
минута часа для запуска (0-59)
Нужный час дня для запуска (0-23)
Нужный
день месяца (0-30)
Нужный месяц года (1-12)
Нужный день недели
(0-6)
Выполнимая команда.

Значок * обозначает слово каждый
(день, год, месяц, час).

Итак например строка 01 * * * * command будет
обозначать запуск программы каждый час в одну минуту.

А строка 02 4 * *
* command означает запуск программы каждый день в 4 часа утра в две
минуты.

В качестве уже более полного примера могу привести
следующее:
01 * * * * echo `date` 'Hi man'
>>$HOME/cron.res

Данное задание каждый час будет добавлять в файл
cron.res текст Hi man и текущую дату.

Итак мы уже знаем как и по какому
принципу работает крон, и поэтому мы сейчас перейдем к заключительному этаму -
его редактированию.

Редактирование крона происходит при помощи команды
crontab.

crontab -e
: войти в режим редактирования
crontab -l :
вывести все задания крона
crontab -r : удалить все
задания

Со второй и третьей командой обычно все ясно.

С первой
командой просто хочу заметить, что редактирование будет простым открытием файла
с заданиями через текстовый редактор. Как правило по умолчанию этим редактором
является vi.

Но я так и не научился пользоваться этим редактором,
поэтому использую pico.

Смену редактора можно провести командой

export EDITOR='pico' а далее и запускать команду
редактирования.

Вот вроде-бы и все. Удачного вам крона :)

Автор: Vadim Kravciuk
Источник: PHP Devs (www.phpdevs.com)

Телефон

+7 8636 237-836

Поиск

VSESMI.ru — новости в СМИ.
Один из больших по объему информации проектов, работающих под управлением HostCMS.

Tur-Hotel.ru — отзывы об отелях
На сайте представлено описание отелей, рейтинг отелей с отзывами туристов.