Я делаю так,
создать папку cron
/application
/cron
my_task.php
/public
сделать скрипт для каждого задания cron /cron/my_task.php с контентом
<? $_SERVER["SCRIPT_URL"] = "/controllerName/MethodName"; // you can set url in routes if you want
$_SERVER["HTTP_HOST"] = "your_site_address.com"; // without http://www
require(dirname(__FILE__) . "/../public/index.php"); // path to index.php
?>
сделать контроллер Cron похожим на другие, но добавить проверку по IP в __construct
и, наконец, запустить как
1 10 * * * cd /path_to_site_folder/cron/ && usr/local/bin/php /path_to_site_folder/cron/my_task.php >> path_to_log/some.log