Боремся с кроном

Прислано: Stalker-g2

пн, 26/05/2008 - 07:28

Другие статьи по теме:

Как известно, крон в друпале по дефолту запускается только через браузер. Это неправильно(паразитные соединения с вёб-сервером) и часто неудобно.

Например, я использую flashvideo для автоматической генерации flv и 3gp из avi. Если роликов было закачано много - процесс занимает длительное время, а разрешать скриптам выполняться по 6 минут через вёб-сервер - это значит сделать подарок DDoS-ерам. Поэтому можно взять, да и пропатчить файл стандартного крона так, чтобы его можно было выполнить через:
/usr/local/bin/php usr/home/www.test.ru/cron.php

Вот, собственно, что надо изменить, чтобы всё работало как надо.

<?php
// $Id: cron.php,v 1.36 2006/08/09 07:42:55 dries Exp $
 
/**
* @file
* Handles incoming requests to fire off regularly-scheduled tasks (cron jobs).
*/
 
$_SERVER['HTTP_HOST'] = 'test.ru';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['REQUEST_METHOD'] = 'GET';
 
chdir('/home/www.zaposti.ru/public_html');
 
include_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
 
flashvideo_cron();
/*
$users = db_query('SELECT * FROM {users}');
while($user = db_fetch_array($users)) {
echo $user['name'] . '\n';
}
 
echo 'all';
*/

оригинал

Комментарии


Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Применить"
Опубликовано EllECTRONC в вт, 27/05/2008 - 18:19.

Ну, ни фига себе! Есть же модуль авто-запуска крона через определенный интервал!
PoorMansCron - Бедный Крон!

Хотя ход интересный!


Опубликовано VladSavitsky в вт, 27/05/2008 - 21:04.

PoorMansCron - это крон для бедных! Хотя с горя поставил уже и его...
Мне хостер тоже сказал, что для такого запуска нужно абсолютные пути в скрипте использовать...

Drupal CookBook - Готовить может каждый!Решение было сохранено на сайте DrupalCookBook.ru:
Запуск хронометра (cron).
Авторы, предложившие решения, также указаны в сохранённой статье.


Опубликовано fasdalf@fasdalf.ru в пт, 30/05/2008 - 08:48.

[дубля]


Опубликовано fasdalf@fasdalf.ru в ср, 28/05/2008 - 04:14.

А если это мультисайт, тогда, что по одному cron.php на каждый url делать?
zaposti.cron.php

<?php $_SERVER['HTTP_HOST'] = 'zaposti.ru';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['REQUEST_METHOD'] = 'GET';
reqiure('usr/home/www.zaposti.ru/cron.php');?>

vezidko.cron.php

<?php $_SERVER['HTTP_HOST'] = 'vezidko.ru';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['REQUEST_METHOD'] = 'GET';
reqiure('usr/home/www.vezidko.ru/cron.php');?>


Опубликовано Stalker-g2 в ср, 28/05/2008 - 07:23.

Автозапуск крона не поможет, если через крон у вас по полчаса видео конвертируется)))
крон для бедных тут тоже не вариант


Опубликовано VladSavitsky в ср, 28/05/2008 - 08:06.

У меня cron.php запускается так:
/home/........./scripts/cron-curl.sh
На скрипт нужно было выставить право исполнения для владельца и внутри изменить доменное имя.
Может быть вам поможет.


Опубликовано Stalker-g2 в ср, 28/05/2008 - 11:59.

fasdalf@fasdalf.ru написал(а):

А если это мультисайт, тогда, что по одному cron.php на каждый url делать?
zaposti.cron.php

<?php $_SERVER['HTTP_HOST'] = 'zaposti.ru';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['REQUEST_METHOD'] = 'GET';
reqiure('usr/home/www.zaposti.ru/cron.php');?>

vezidko.cron.php

<?php $_SERVER['HTTP_HOST'] = 'vezidko.ru';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['REQUEST_METHOD'] = 'GET';
reqiure('usr/home/www.vezidko.ru/cron.php');?>

правильно
однако в целом я предпочитаю другой подход - я обычный крон запускаю по стандарту, а громоздкие задачи выношу в отдельные скрипты


Опубликовано EllECTRONC в чт, 29/05/2008 - 01:04.

VladSavitsky написал(а):

PoorMansCron - это крон для бедных! Хотя с горя поставил уже и его...

Вот!
А что делать, если некогда?..... да и к тому же меня устраивает запуск крона через часов 10...


Опубликовано CTPAHHuK в чт, 02/07/2009 - 06:51.

Коллеги, доброго времени суток!
При запуске cron.php через php возникла следующая проблема:
В письмах приходящих по подписке приходят битые ссылки.
Ссылки выглядят как
http://mydomain.ru/home/www/mydomain.ru/public_html/weblinks/49350
Где /home/www/mydomain.ru/public_html/ - хоумдира сайта.
Где грабли?


Опубликовано Andruxa в ср, 10/11/2010 - 11:15.

Здравствуйте.

Подскажите, пожалуйста - есть 2 сайта на одном шаред-хостинеге (не мультисайтинг - разные БД, директории, наборы модулей и т.д.)

Дописал в начале cron.php для каждого сайта

<?php
$_SERVER
['HTTP_HOST'] = 'site1.ru';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['REQUEST_METHOD'] = 'GET';
 
chdir('/home/userXXX/data/www/site1.ru');
?>

и
<?php
$_SERVER
['HTTP_HOST'] = 'site2.ru';
$_SERVER['REMOTE_ADDR'] = '127.0.0.1';
$_SERVER['REQUEST_METHOD'] = 'GET';
 
chdir('/home/userXXX/data/www/site2.ru');
?>

соответственно.

С одним сайтом все в порядке - крон регулярно выполняется, со вторым - проблема: приходит сообщение на почту
"PHP Notice: Undefined index: SERVER_SOFTWARE in /home/userXXX/data/www/site2.ru/includes/bootstrap.inc on line 660"

В чем может быть проблема?


Новое на сайте

Ссылки партнёров