Cron

Категория:Виртуальный хостинг -> Сервисы и средства разработки

Содержание


Cron – средство запуска программ по расписанию

В операционной системе UNIX и ей подобных для запуска программ по расписанию используется механизм, называемый cron. Пользователь, желающий запускать свои программы по расписанию, создает конфигурационный файл, куда записывает расписание запуска программ. Данный конфигурационный файл каждую минуту просматривается cron‘ом и запускаются те программы, время запуска которых подошло.

Редактируется конфигурационный файл с помощью программы crontab. Программы, запускаемые cron, исполняются от имени пользователя – владельца соответствующего конфигурационного файла.

Как создать и отредактировать свой конфигурационный файл?

Редактировать конфигурационный файл можно двумя способами.

Способ первый – прямое редактирование через crontab.

  • Наберите в командной строке команду crontab -e. Откроется редактор vi с содержимым вашего конфигурационного файла. Если это первый запуск crontab‘а, то файл будет пустой.
  • Отредактируйте содержимое.
  • Выйдите из редактора. Crontab автоматически даст команду демону cron перечитать Ваш файл.

У этого способа есть один недостаток – редактор vi, в котором открывается файл, довольно сложен в использовании и требует определенного опыта и навыков.

Чтобы сменить редактор на более удобный, перед редактированием конфигурационного файла cron Вы можете добавить строку export EDITOR=mcedit в файл /home/login/.bash_profile, отредактировав файл с помощью команды mcedit ~/.bash_profile.

Способ второй – приказ демону cron перечитать готовый файл. Этот способ проще в использовании.

  • Создайте конфигурационный файл на сервере командой touch имя_файла.
  • Отредактируйте его в привычном для Вас редакторе, например в FAR‘е.
  • Если Вам не нравится редактировать файл на сервере, то Вы можете создать и отредактировать файл на своем компьютере и затем закачать его на сервер по FTP. * Выполните команду crontab имя_файла. Crontab при этом даст команду демону cron перечитать Ваш файл.

Имейте в виду, для того, чтобы любое изменение конфигурационного файла вступило в силу, необходимо снова выполнить команду crontab имя_файла. При этом все предыдущие настройки crontab будут перезаписаны новыми. Кроме того, не следует путать конфигурационный файл crontab с тем файлом, который создаете Вы сами. Команда crontab имя_файла копирует содержимое Вашего файла в специальный файл crontab, после этого Ваш файл в процессе больше не участвует.

Что нужно писать в конфигурационном файле?

Конфигурационный файл состоит из строк, каждая из которых описывает программу, которая будет запускаться по расписанию. Каждая строка состоит из 6 полей, поля отделяются друг от друга пробелом или табуляцией. Поля имеют следующее назначение:

  1. Минуты (0-59)
  2. Часы (0-23)
  3. День месяца (1-31)
  4. Месяц в году (1-12)
  5. День недели (0-6, при этом 0 означает воскресенье)
  6. Программа, которая будет запущена

Каждое из первых 5 полей может быть записано несколькими способами:

  1. Символом * (означает любое значение)
  2. Списком через запятую (1,2,3)
  3. Диапазоном через тире (1-31)
  4. Шагом значений диапазона (например */2 означает через_раз)

Кроме того, Вы можете получать по почте результаты и ошибки выполнения программ, запускаемых демоном cron по расписанию. Для этого в конфигурационном файле напишите MAILTO=ваш_email_адрес.

Где я могу получить дополнительную информацию?

Для получения дополнительной информации по этой теме можно воспользоваться встроенной справочной системой, набрав в командной строке сервера:
man cron – описание особенностей функционирования cron
man 1 crontab – описание способов использования crontab
man 5 crontab – описание формата конфигурационных файлов для cron

Как запускать php скрипт из cron’a?

Строка в кронфайле, запускающая php скрипт выглядит так:

* * * * * /usr/local/php54/bin/php /home/user/www/site1/public_html/script.php

где /usr/local/php54/bin/php — путь до php-интерпретатора версии 5.4, а /home/user/www/site1/public_html/script.php — полный путь до скрипта.

Полный список интерпритаторов php разных версий:

/usr/local/php4/bin/php
/usr/local/php5/bin/php
/usr/local/php53/bin/php
/usr/local/php54/bin/php
/usr/local/php55/bin/php
/usr/local/php56/bin/php

Мой php скрипт требует параметров в адресной строке, как можно вызвать такой скрипт?

Для запуска php-скриптов методом GET из cron`a используют утилиту wget. Строка записи cron-файла выглядит так:
* * * * * /usr/local/bin/wget 'http://имя_домена/script.php?var1=xxx&var2=yyy'
Где /usr/local/bin/wget – путь до утилиты wget;
http://имя_домена/script.php?var1=xxx&var2=yyy – ссылка на скрипт.
В случае, если Вы не хотите, чтобы полученный от скрипта вывод сохранялся в файле, можно использовать вместо wget программу GET.

Как запустить perl скрипт из cron’a?

Для запуска perl-скриптов указывать путь до интерпретатора не нужно, так как путь уже указан в заголовке самого скрипта.

Можно ли управлять файлами crontab из панели?

В панели есть возможность управлять запуском скриптов по расписанию.
Опция доступна для всех пользователей, чьи тарифные планы поддерживают cron. Для создания конфигурационного файла откройте в панели управления пункт Crontab в меню Управление.


Категории:

загрузка…