Понадобилось мне запускать php скрипт обновления базы твитов и фоток из инстаграмма для своих виджетов на Орлеце. Сервер у нас на Ubuntu: типичный LAMP. Чем запускать вопроса не стояло: конечно cron! Тем более, что я не линуксоид и других планировщиков под Linux просто не знаю.

Не буду описывать все свои шаги по поиску ошибок запуска, скажу только, что у меня выпадала вот эта ошибка:
(CRON) error (grandchild #24430 failed with exit status 127)
Я перепробовал многое и в конце концов выяснилось, что ошибка заключалась в неправильной строке запуска скрипта. Вывод из этого соответствующий: не копируйте слепо всё, что пишут в интернетах.

Итак, ставим скрипт на cron:


  1. Заходим в консоль (я заходил от рута)

  2. Пишем там crontab -e

  3. Пишем там следующее:*/5 * * * * /usr/bin/php5 -f /srv/www/VASH_SITE.RU/htdocs/YOUR_PHP_SCRIPT.php > /srv/www/VASH_SITE.RU/htdocs/YOUR_PHP_SCRIPT.log 2>&1

  4. Жмём F2

  5. Видим такую красоту:


    Это значит что задания cron'а успешно обновлены (но это не значит, что они успешно выполнятся)

  6. Для проверки очереди задач cron'а можно вызвать команду crontab -l



Несколько разъяснений для таких же ламеров как я:


  1. */5 * * * * – здесь задаётся время выполнения скрипта. В моём случае раз в пять минут

  2. /usr/bin/php5 -f – запускаемая программа. Параметр -f значит, что нужно запустить файл

  3. /srv/www/VASH_SITE.RU/htdocs/YOUR_PHP_SCRIPT.php – выполняемый файл

  4. > > /srv/www/VASH_SITE.RU/htdocs/YOUR_PHP_SCRIPT.log 2>&1 – обозначет, что вывод файла будет записываться в файл по указанному адресу. Что значит цифирь в конце я не знаю, да это в общем-то и не суть. Главное, что все ошибки выполнения СКРИПТА будут записываться в удобное для вас место. Хоть в /dev/null их отправляйте

  5. Ошибки самого cron'а можно найти в файле syslog в папке /var/log