Скрипт недовыполняется через cron
6863 сообщения
#10 лет назад
Есть тяжеловатый скрипт - формирование xlsx файла на 7000 строк. При запуске через ssh выполняется корректно за 5-7 минут. А из крона - нет. В обеих случаях используется одна и та же команда: /usr/local/bin/php /home/#####//index.php
Часть файла через крон формируется, при чем, выполняется самый долгий цикл. То есть, примерное время вылета - 4-5 минут. Техподдержка хостинга же утверждает, что у них стоит ограничение 60 секунд на все, но это явно не так, так как а) при ручном запуске все выполняется, б) время работы через крон так же явно больше называемой цифры.
Для полноты картины. Скрипт использует стандартные библиотеки php ZipArchive и SimpleXML.
Буду очень благодарна за любые высказанные соображения, которые помогут в устранении проблемы.
6863 сообщения
#10 лет назад
Спасибо большое. Иду испытыватьминут через 20 буду знать результат.

Не то. Обычная картина, та же, что и без этой приписки.
Я действительно какое-то время назад добавляла вывод отладочной информации в консоль, но дело в том, что после этого несколько раз скрипт по расписанию выполнился корректно, а потом перестал.
834 сообщения
#10 лет назад
floppox,у вас там или инклуды, и запись, или еще что то с неабсолютными путями, работать будет такcd /home/#####/ && /usr/local/bin/php index.php >/dev/nullтоесть сначала переходите в папку там где лежит скрипт, а потом его пускаете
834 сообщения
#10 лет назад
floppox, тогда понятно=) я бы еще рекомендовал команду по SSH/usr/local/bin/php -iскопировать вывод, и найти max_execution_time, должен быть 0, если стоит циферка не 0, тогда PHP CLI тоже слимитирован, хотя редко лимитят его=)
3562 сообщения
#10 лет назад
Все так только перенаправить вывод в файл и почитать ошибки =)Если есть ССШ - запустить из терминала и посмотреть ошибки на экране.
1599 сообщений
#10 лет назад
Даже если решите проблему, то потом возникнут новые. Например, станет не 7000 записей, а 30 тыс. - скрипт будет работать полчаса и вешать весь сервер 
такие вещи разбивают на отдельные куски и ставят на крон на почаще. Сто строк быстренько сделал и замер - за час в 4 утра сделает все 7 тыщ потихоньку.
834 сообщения
#10 лет назад
Crist,а мы обычно берем VPS рублей за 200/мес, ставим php-fpm или php cgi , лимитируем использование процессора 70%, 30% для сайта оставляем если не сильно посещаем=) и не надо извращаться по поводу переписывания на куски выполнения, или писать функционал перезапуска с места обрыва=))) Проще и дешевле=)SmartDesign, Цитата:
Если есть ССШ - запустить из терминала и посмотреть ошибки на экране.Цитата:
а) при ручном запуске все выполняется,писали что при запуске по SSH все ок=)
floppox, ну как вышло?=)
11416 сообщений
#10 лет назад
Не знаю в чем дело, так издали не понятно.У меня было когда-то что-то подобное. Проблема решилась добавлением в начало крона:
set_time_limit(0);
chdir(dirname(__FILE__));
834 сообщения
#10 лет назад
floppox,жаль, ну могу предложить акк у себя на сервере, поставьте скрипт, и попробуем запустить в CGI, и поглядим логи
11416 сообщений
#10 лет назад
Ну да, в начало скрипта, который выполняется по крону 
834 сообщения
#10 лет назад
floppox, сразу добавьте вначалоini_set('log_errors', 'On');php_errors.log сразу создайте по адресу, и поставьте 777 права=) Что бы хоть видеть на чем запинается=)
ini_set('error_log', '/home/ххххх/php_errors.log');