何もしなくても下記のように普通にコマンドラインから実行できる。
$ cd /path/to/project;
$ php index.php controller method
これだけだとURLにアクセスされるとバッチ処理を実行できてしまうので、コンストラクタでコマンドラインからの実行でない場合は404にしておく。
class Cron extends CI_Controller {
function __construct()
{
parent::__construct();
if (!$this->input->is_cli_request()) show_404();
}
}
cron設定できる処理の数が決まっているレンタルサーバとかなら、判定条件を工夫して別のサーバからURL叩いて定期処理をさせるとかもできるか。[参考]
CodeIgniter ユーザガイド CLIからの実行