Установка и настройка Cron
Cron (Command Run ON) — система для автоматического запуска программ и скриптов на сервере в определённое время.
Управлять 'cron' нужно с помощью команды 'crontab'. Команда 'crontab -e' автоматически запустит текстовый редактор и загрузит в него файл конфигурации cron. После выхода из редактора, новая конфигурация cron будет установлена (вступит в силу) автоматически.
Конфигурационный файл содержит последовательность командных строк и расписание их вызова. Пустые строки и строки, начинающиеся с символа '#' игнорируются. Остальные строки являются установками переменных окружения и командами cron.
Запись crontab- файла в общем случае состоит из семи полей:
минуты часы день месяц день_недели имя_пользователя команда
Допустимые значения временных параметров:
| параметр | допустимый интервал |
| минуты | 0-59 |
| часы | 0-23 |
| день_месяца | 1-31 |
| месяц | 1-12 |
| день_недели | 0-7 (0-Вс,1-Пн,2-Вт,3-Ср,4-Чт,5-Пт,6-Сб,7-Вс) |
Поле может быть задано явно или шаблоном :
- звездочка - любая цифра
- целое число
- целые числа через запятую — задание дискретного множества значений
- два целых числа, разделенные дефисом, соответствующие диапазону значений.
Пример готовой строки сценария cron:
# Выполнять задание в 18 часов 7 минут 13 мая если это пятница
7 18 13 5 5 /home/www/myscript.pl
# Выполнять задание раз в час в 0 минут
0 */1 * * * /home/www/myscript.pl
# Выполнять задание каждые семь часов в 0 минут
0 */7 * * * /home/www/myscript.pl
# Выполнять задание по воскресеньям в 10 час 30 минут
30 10 * * 0 /home/www/myscript.pl
Для выполнения php скриптов из cron необходим бинарный интерпретатора PHP.
Обратите внимание, при запуске из cron опцию -q заставляет PHP не выдавать http-заголовки!
# Пример запуска скрипта в 5 утра каждый день:
0 5 * * * /usr/local/php4/bin/php-cli -q /home/www/script.php
Пример скрипта задания (создание резервной копии)
#!/bin/sh
date=`date '+%d-%B-%Y-%H-%M-%S'`
mkdir /arh/$date
# Files
tar -czf /arh/$date/home.tar.gz /home
# MySQL
/usr/bin/mysqldump -uUSER -pPASS -hlocalhost mydb | gzip -c > /arh/$date/sql-dbname_db-`date '+%d-%B-%Y-%H-%M-%S'`.sql.gz
exit 0
Возможные проблемы:
На хостинге может получиться так что планировщик задач не установлен как например получилось у меня с VPS'ом от РБК, необходимо доустановить его
yum install vixie-cron01.05.2009, 783 просмотра.


