Воля ваша, но я предпочитаю другой подход.
1) Кладём все скрипты, которые запускаются по крону, в отдельный каталог. Скажем, /cron/ в корне сайта.
2) Закрываем к ним доступ по HTTP. Для этого -- если у вас апач -- создаём в /cron/ файл .htaccess следующего содержания:[CODE]order deny,allow
deny from all
[/CODE]3) Чтобы запускаемые по крону скрипты работали корректно, в них перед подлючением пролога битрикса надо корректно задать DOCUMENT_ROOT и ID сайта. Это выглядит как-то так:[CODE]<?
$_SERVER['DOCUMENT_ROOT'] = realpath(dirname(__FILE__).'/..'); // на один уровень выше, чем /cron/
define('NO_KEEP_STATISTIC', true);
define('NOT_CHECK_PERMISSIONS',true);
define('SITE_ID', 's1');
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
// тут делаем то, что надо
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php');
?>
[/CODE]
1) Кладём все скрипты, которые запускаются по крону, в отдельный каталог. Скажем, /cron/ в корне сайта.
2) Закрываем к ним доступ по HTTP. Для этого -- если у вас апач -- создаём в /cron/ файл .htaccess следующего содержания:[CODE]order deny,allow
deny from all
[/CODE]3) Чтобы запускаемые по крону скрипты работали корректно, в них перед подлючением пролога битрикса надо корректно задать DOCUMENT_ROOT и ID сайта. Это выглядит как-то так:[CODE]<?
$_SERVER['DOCUMENT_ROOT'] = realpath(dirname(__FILE__).'/..'); // на один уровень выше, чем /cron/
define('NO_KEEP_STATISTIC', true);
define('NOT_CHECK_PERMISSIONS',true);
define('SITE_ID', 's1');
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php');
// тут делаем то, что надо
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/epilog_after.php');
?>
[/CODE]