Данная заметка предназначенна для тех, кто собирается работать с 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' а далее
и запускать команду редактирования.
Вот вроде-бы и все. Удачного вам
крона :)