Почему по крону php скрипт не все данные исполняет?
На сайте есть парсер, который выполняется по крону в 8:00, 9:00 и в 11:00.
Парсер через апи собирает картинки и названия и добавляет их в базу и следовательно они отображаются на сайте.
Вопрос: почему через крон парсер не собирает некоторые картинки. Названия бере, страницу создает, а картинки не загружает.
А когда через консоль я запускаю этот же парсер то он собирает все и стабильно работает.
Я новичок в администрировании, подскажите что делать и почему так? (что то менять в парсере не вариант, т.к. через консоль он работает исправно)
p.s. крон запускает admin, а консоль root.
p.s.s. centOS, vestacp
Вы смотрели логи? Из консоли сколько раз запускали, прежде чем поняли, что нет ошибок? Крон задача ничем не отличается от простого запуска скрипта. И настройки крона тоже покажите.
Если не хочешь быть первым - не вставай в очередь!
Наиболее вероятных совета тут два:
1. Парсер, как и любая другая программа подобного толка должен вести лог, из него обычно и узнают про причины и источники ошибок.
2. Убедитесь, что у парсера достаточно прав для записи всех файлов во всех местах, куда он их пишет. Для проверки можете добавить эту же задачу в крон под root'ом (или иным образом заставьте запускаться Вашу программу от имени администратора). Если ошибки исчезнут - значит проблема была в правах.
Алексей Фисенко, он не загружает конкретные картинки или какие-то случайные? Хотя... Я думаю, лучший способ выяснить всё-таки что происходит - это начать логировать ошибки, для этого оберните код в примерно такой блок:
try {
// all your code here
} catch (\Exception $e) {
file_put_contents("log.txt", $e->getMessage() . "\n");
}
Как лог запишется - присылайте его суда, вместе посмотрим...
Может пути? Через крон должны быть все пути абсолютнеые, а через консоль будет работать и с относительными.
Как вариант, в кроне прописать cd /path/to/script/ && /usr/bin/php ...