[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Опять проблемы с cron
Страницы: 1, 2
yuriy
Привет!
Сервер Debian Linux 6 (ISP Manager). Настроил в ISP cron следующими строками:

*/15 * * * * /usr/bin/php /var/www/kino/data/www/kino.ru/scripts/update_movies.php >/dev/null 2>&1

Скрипт на выполнение содержит код:


header('Location: http://http://kino.ru/?com=update_movies');
exit();


Крон не выдаёт ошибок, но команда update_movies не выполняется. Не подскажите как осилить сиё? Спасибо.

_____________
void x;
yuriy
Если шлю команду браузером (http://http://kino.ru/?com=update_movies), то всё отрабатывает.

_____________
void x;
yuriy
Пардон, ошибка в урле. Исправил на http://kino.ru/?com=update_movies, но эффект всё равно отсутствует.

_____________
void x;
Invis1ble
Цитата
>/dev/null 2>&1

сделай запись логов и смотри их wink.gif

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

yuriy
Invis1ble Единственной дополнительной опцией в ISP было отправка сообщений cron на емайл. Я установил эту опцию, сейчас строка крона выглядит так:

/usr/bin/php /var/www/kino/data/www/kino.ru/scripts/update_movies.php

По прежнему никаких ошибок нет, на почту ничего не пришло.

_____________
void x;
killer8080
Цитата (yuriy @ 28.01.2013 - 07:55)
Скрипт на выполнение содержит код:   

header('Location: http://http://kino.ru/?com=update_movies');   
exit();

И как по твоему оно может работать в консоли? user posted image
yuriy
killer8080 А я поправился, если вы внимательны. Я исправил урл. Теперь исполняемый файл php содержит код


header('Location: http://kino.ru/?com=update_movies');
exit();


А дальше я не знаю, как оно может работать в консоли, мне нужно запускать команду update_movies каждые 15 минут.

_____________
void x;
killer8080
Цитата (yuriy @ 28.01.2013 - 09:24)
killer8080 А я поправился, если вы внимательны. Я исправил урл.

Я внимателен, прочти еще раз мой вопрос wink.gif
yuriy
killer8080 Вопрос внимательно прочёл, ничего нового не обнаружил.


_____________
void x;
killer8080
yuriy
функция header добавляет http заголовок к ответу сервера, соответственно она имеет смысл только если скрипт запущен в контексте вебсервера, крон запускает скрипт в режиме консоли, а значит нет никаких http заголовков, и некому посылать редиректы, браузера же нет. Кстати на счет ошибок, если они и есть, то как их увидишь? Ведь весь вывод направлен в /dev/null
yuriy
killer8080 Аа, ну так бы и сказал. Спасибо, щас исправлю. Ошибки, по идее, должны отсылаться теперь на майл, но они не шлются.

Строка для крона теперь такая + в ISP настроил опцию, чтобы ошибки отсылались на емайл:

/usr/bin/php /var/www/kino/data/www/kino.ru/scripts/update_movies.php

_____________
void x;
killer8080
Цитата (yuriy @ 28.01.2013 - 09:43)
Строка для крона теперь такая + в ISP настроил опцию, чтобы ошибки отсылались на емайл:

отправка на email в самом скрипте?
yuriy
killer8080 Нет, в самом скрипте только


header('Location: http://kino.ru/?com=update_movies');
exit();


А отправка сообщений крона на емайл настраивается в ISP, при настройке задания.

_____________
void x;
yuriy
killer8080 Спасибо! Вот так работает:


file_get_contents('http://kino.ru/?com=update_movies');


Но хотелось бы только пнуть команду на выполнение и не дожидаться ответа. Не подскажите, как сделать?

_____________
void x;
yuriy
Вот так тоже пашет:


$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'http://kino.ru/?com=update_movies');
curl_setopt($curl, CURLOPT_TIMEOUT, 1);
curl_exec($curl);


Таймаут в секунду, потом скрипт глохнет.

_____________
void x;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.