you don't need to edit any of the cron files, it's not even recommended.
catalog rules do have some problems, but they can be solved directly or by adding an extra cronjob. the reason you're not seeing the cronjob in the db is because the job runs daily at 1:00 AM GMT and gets cleaned up after a few hours.
You can use n98-magerun to list your cron jobs, or http://fbrnc.net/blog/2011/03/magento-cron-scheduler#hello.
Like I said, catalog rules have some problems getting applied - most of the time they occur because of timezone issues - try changing the schedule.
Ultimately, you can create a new cronjob especially for this, but make sure you disable the default job.
Here's the file, call it catalogrule.php, put in shell/ then add a cronjob in your system executing it: php -f /full/path/to/magento/shell/catalogrule.php
. You can also execute the file manually from the CLI, although that's probably not necessary.
<?php
require_once 'abstract.php';
class Mage_Shell_ApplyCatalogRules extends Mage_Shell_Abstract
{
function run()
{
if ($this->getArg('h') || $this->getArg('help')) {
die($this->usageHelp());
}
Mage::log('Started applying catalog rules', null, 'catalogrule.log', true);
/** @var $resource Mage_CatalogRule_Model_Resource_Rule */
$resource = Mage::getResourceSingleton('catalogrule/rule');
$resource->applyAllRules();
Mage::log('Ended applying catalog rules', null, 'catalogrule.log', true);
}
function usageHelp()
{
global $argv;
$s = $argv[0];
return <<<USAGE
Usage: php -f $s
USAGE;
}
}
$shell = new Mage_Shell_ApplyCatalogRules();
$shell->run();
First of all, make sure the cron is set on your server. Try the following command using SSH
#crontab -l
There should be your magento_root/cron.php file.
If not, then you need to edit the crontab. Use the following commands
#crontab -e
(this will open crontab in your default editor)
*/5 * * * * wget -O /dev/null -q path_to_magento_root/cron.php > /dev/null
(add this statement and save and close the file.
This will check your magento cron.php after every five minutes)
Now, magento cron is set on your server.
I'd also recommend you this extension AOE_SCHEDULLER. This will help you monitoring all magento crons.
Best Answer
You need to setup crontab on your server
Insert
path to php binary is the absolute file system path to your PHP binary
magento install dir is the directory in which you installed the Magento software; for example, /var/www | grep -v "Ran jobs by schedule" filters this message from the log, making any errors easier to spot The first command (magento cron:run) reindexes indexers, send automated e-mails, generates the sitemap, and so on. Usually it’s associated with the PHP command line .ini file. The other two commands are used by the Component Manager and System Upgrade.
You can find more information here:
http://devdocs.magento.com/guides/v2.1/config-guide/cli/config-cli-subcommands-cron.html