Запуск php скрипта по cron в Ubuntu 10.10

Задача состоит в том чтобы с определенной периодичностью запускать php файл. В данном случае скрипт обновления цен в интернет магазине. Цены и наличие товара в моем магазине должны обновляться каждый час во избежание всяческих недоразумений когда товар на сайте есть, а в наличии у поставщика нет еще со вчера, или цена изменилась и пр. Несколько слов о cron cron — демон-планировщик задач в UNIX-подобных операционных системах, использующийся для периодического выполнения заданий в заданное время. Утилита cron выполняет команды в заданное время. Регулярные действия описываются инструкциями, помещенными в файлы crontab, которые находятся в каталоге. Как видим ключевое здесь crontab именно в этом файле хранятся инструкции по заданиям которые нужно выполнить. Открываем терминал, прописываем:

crontab -e

Тем самым откроем в редакторе по умолчанию файл crontab для редактирования. У меня это Vim. Поэтому нажимаю "i" для редактирования в конце файла добавляю строчку:

1 * * * * /usr/bin/php5 /var/www/myscript.php

Вместо /var/www/myscript.php полный путь к Вашему скрипту. Выхожу из редактирования в Vim с помощью Esc, сохраняю ZZ Для того чтобы проверить записались ли изменения в файл, в терминале набираю:

crontab -l

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

  1. минута от 0 до 59
  2. час от 0 до 23
  3. день_месяца от 1 до 31
  4. месяц от 1 до 12 (можно три буквы из названия месяца, регистр не имеет значения от jan до dec)
  5. день_недели от 0 до 6 (0 это воскресенье, можно писать от sun до sat)

Дополнение 1. В скрипт не хотел выполнятся по крону, несмотря на успешный запуск в браузере. Проблема оказалась в неполном пути к файлу. Если у Вас есть какие либо пути к файлам, позаботьтесь о том чтобы пути были полными.

Дополнение 2. У меня на связке Ubuntu Server + LAMP отказался запускаться скрипт через командную строку из-за отсутствия файла /usr/bin/php5. Решением проблемы стало: 

sudo apt-get install php5-cli 

Дополнение 3. Отказался работать Image Magick через командную строку. Помогло это: 

sudo apt-get install php5-imagick

Большое спасибо scream4ik с руcскоязычного форума Ubuntu

Comments