cron工作正在magento网站工作 – 但没有find心跳

对于我们的magento网站,突然cron工作停止工作。

当我们试图使用下面的命令设置cron作业时,它会给出错误:

-bash: */5: No such file or directory 

命令:

 */5 * * * * php -f /var/www/html/sitename/cron.php 

编辑

我们在同一台服务器上有两个站点。

我们有一个自定义模块来检查cron是否工作。

在一个网站,我们正在获得下面的消息

在这里输入图像描述

在另一个网站,这个消息:

在这里输入图像描述

在这里输入图像描述

cron.php

 <?php /** * Magento * * NOTICE OF LICENSE * * This source file is subject to the Open Software License (OSL 3.0) * that is bundled with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://opensource.org/licenses/osl-3.0.php * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@magento.com so we can send you a copy immediately. * * DISCLAIMER * * Do not edit or add to this file if you wish to upgrade Magento to newer * versions in the future. If you wish to customize Magento for your * needs please refer to http://www.magento.com for more information. * * @category Mage * @package Mage * @copyright Copyright (c) 2006-2015 X.commerce, Inc. (http://www.magento.com) * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) */ // Change current directory to the directory of current script chdir(dirname(__FILE__)); require 'app/Mage.php'; if (!Mage::isInstalled()) { echo "Application is not installed yet, please complete install wizard first."; exit; } // Only for urls // Don't remove this $_SERVER['SCRIPT_NAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_NAME']); $_SERVER['SCRIPT_FILENAME'] = str_replace(basename(__FILE__), 'index.php', $_SERVER['SCRIPT_FILENAME']); Mage::app('admin')->setUseSessionInUrl(false); umask(0); $disabledFuncs = explode(',', ini_get('disable_functions')); $isShellDisabled = is_array($disabledFuncs) ? in_array('shell_exec', $disabledFuncs) : true; $isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true; $isShellDisabled = true; try { if (stripos(PHP_OS, 'win') === false) { $options = getopt('m::'); if (isset($options['m'])) { if ($options['m'] == 'always') { $cronMode = 'always'; } elseif ($options['m'] == 'default') { $cronMode = 'default'; } else { Mage::throwException('Unrecognized cron mode was defined'); } } else if (!$isShellDisabled) { $fileName = basename(__FILE__); $baseDir = dirname(__FILE__); shell_exec("/bin/sh $baseDir/cron.sh $fileName -mdefault 1 > /dev/null 2>&1 &"); shell_exec("/bin/sh $baseDir/cron.sh $fileName -malways 1 > /dev/null 2>&1 &"); exit; } } Mage::getConfig()->init()->loadEventObservers('crontab'); Mage::app()->addEventArea('crontab'); if ($isShellDisabled) { Mage::dispatchEvent('always'); Mage::dispatchEvent('default'); } else { Mage::dispatchEvent($cronMode); } } catch (Exception $e) { Mage::printException($e); exit(1); } ?> <?php Mage::log('cron working', null, 'cron.log'); ?> 

当我添加此代码在cron.php结束,并在浏览器中运行该文件,它显示: Tuesday 17th of May 2016 07:12:03 PM所以似乎cron正在运行。 但为什么没有find心跳?

 try { $myFile = "cronlog.txt"; $fh = fopen($myFile, 'w'); $stringData = date('l jS \of FY h:i:s A'); fwrite($fh, $stringData); fclose($fh); } catch (Exception $e) { Mage::printException($e); } 

编辑2

在电子邮件中我们得到这些错误:

执行searchsphinx_check_daemon时出现Cron错误:

 exception 'Mage_Core_Exception' with message 'Too late for the schedule.' inapp/Mage.php:595 Stack trace: #0app/code/community/Aoe/Scheduler/Model/Observer.php(47): Mage::throwException('Too late for th...') #1app/code/core/Mage/Core/Model/App.php(1338): Aoe_Scheduler_Model_Observer->dispatch(Object(Varien_Event_Observer)) #2app/code/core/Mage/Core/Model/App.php(1317): Mage_Core_Model_App->_callObserverMethod(Object(Aoe_Scheduler_Model_Observer), 'dispatch', Object(Varien_Event_Observer)) #3app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('default', Array) #4cron.php(76): Mage::dispatchEvent('default') #5 {main} 

cron日志

 2016-05-24T12:30:02+00:00 DEBUG (7): Start: captcha_delete_old_attempts 2016-05-24T12:30:02+00:00 DEBUG (7): Stop: captcha_delete_old_attempts 2016-05-24T12:30:02+00:00 DEBUG (7): Start: mstcore_logger_cron 2016-05-24T12:30:02+00:00 DEBUG (7): Stop: mstcore_logger_cron 2016-05-24T12:30:02+00:00 DEBUG (7): Start: newsletter_send_all 2016-05-24T12:30:02+00:00 DEBUG (7): Stop: newsletter_send_all 2016-05-24T12:30:02+00:00 DEBUG (7): Start: searchsphinx_check_daemon 2016-05-24T12:30:02+00:00 DEBUG (7): Stop: searchsphinx_check_daemon 2016-05-24T12:30:02+00:00 DEBUG (7): Start: searchsphinx_reindex_delta_job 2016-05-24T12:30:02+00:00 DEBUG (7): Stop: searchsphinx_reindex_delta_job 2016-05-24T12:30:02+00:00 DEBUG (7): Start: xmlconnect_notification_send_all 2016-05-24T12:30:02+00:00 DEBUG (7): Stop: xmlconnect_notification_send_all 2016-05-24T12:30:03+00:00 DEBUG (7): Start: aoescheduler_heartbeat 2016-05-24T12:30:03+00:00 DEBUG (7): Stop: aoescheduler_heartbeat 2016-05-24T12:30:03+00:00 DEBUG (7): Start: captcha_delete_expired_images 2016-05-24T12:30:03+00:00 DEBUG (7): Job "captcha_delete_expired_images" (id: 133636) is locked. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Stop: captcha_delete_expired_images 2016-05-24T12:30:03+00:00 DEBUG (7): Start: captcha_delete_old_attempts 2016-05-24T12:30:03+00:00 DEBUG (7): Job "captcha_delete_old_attempts" (id: 133638) is locked. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Stop: captcha_delete_old_attempts 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:31" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:32" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:33" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "aoescheduler_heartbeat" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "aoescheduler_heartbeat" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "aoescheduler_heartbeat" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "captcha_delete_expired_images" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "aoescheduler_heartbeat" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "aoescheduler_heartbeat" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "aoescheduler_heartbeat" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "captcha_delete_expired_images" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Generated schedule. Newest task is scheduled at "2016-05-24 12:49:00". (Duration: 0.37 sec) 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "newsletter_send_all" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "newsletter_send_all" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "newsletter_send_all" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:31" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:32" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:33" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:34" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:36" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:37" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:38" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:39" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:41" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:42" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "newsletter_send_all" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:43" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "newsletter_send_all" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:44" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "newsletter_send_all" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:46" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:47" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:48" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:49" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_reindex_delta_job" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:31" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:32" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:33" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:34" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:36" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:37" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:38" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "xmlconnect_notification_send_all" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:39" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "xmlconnect_notification_send_all" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:41" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:42" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "xmlconnect_notification_send_all" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:43" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:44" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Generated schedule. Newest task is scheduled at "2016-05-24 12:49:00". (Duration: 0.21 sec) 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:46" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:47" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:48" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_check_daemon" at "2016-05-24 12:49" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "searchsphinx_reindex_delta_job" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "xmlconnect_notification_send_all" at "2016-05-24 12:35" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "xmlconnect_notification_send_all" at "2016-05-24 12:40" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Pending schedule for "xmlconnect_notification_send_all" at "2016-05-24 12:45" already exists 1 times. Skipping. 2016-05-24T12:30:03+00:00 DEBUG (7): Generated schedule. Newest task is scheduled at "2016-05-24 12:49:00". (Duration: 0.28 sec) 2016-05-24T12:31:02+00:00 DEBUG (7): Start: mstcore_logger_cron 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: mstcore_logger_cron 2016-05-24T12:31:02+00:00 DEBUG (7): Start: newsletter_send_all 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: newsletter_send_all 2016-05-24T12:31:02+00:00 DEBUG (7): Start: aoescheduler_heartbeat 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: aoescheduler_heartbeat 2016-05-24T12:31:02+00:00 DEBUG (7): Start: searchsphinx_reindex_delta_job 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: searchsphinx_reindex_delta_job 2016-05-24T12:31:02+00:00 DEBUG (7): Start: captcha_delete_expired_images 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: captcha_delete_expired_images 2016-05-24T12:31:02+00:00 DEBUG (7): Start: xmlconnect_notification_send_all 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: xmlconnect_notification_send_all 2016-05-24T12:31:02+00:00 DEBUG (7): Start: captcha_delete_old_attempts 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: captcha_delete_old_attempts 2016-05-24T12:31:02+00:00 DEBUG (7): Start: searchsphinx_check_daemon 2016-05-24T12:31:02+00:00 DEBUG (7): Stop: searchsphinx_check_daemon 2016-05-24T12:32:02+00:00 DEBUG (7): Start: searchsphinx_check_daemon 2016-05-24T12:32:02+00:00 DEBUG (7): Stop: searchsphinx_check_daemon 

 */5 * * * * date >> /var/www/html/magento/var/log/cron.log;/bin/sh -f /var/www/html/magento/cron.sh >> /var/www/html/magento/var/log/cron.log; 

我们也运行我们的crontab作为apache用户,因为apache是​​我们所有magento文件的所有者:

 sudo crontab -e -u apache 

如果你有两个站点在同一台服务器上,请确保你为每个站点调用cron.php。

你的cron运行不正常的另一个原因是你需要花费一些时间,而另一个工作根本不能启动。

你可以在cron_schedule表中检查db中cron作业的状态。 在这个表格中,您可以看到有关每个作业的详细信息,开始和结束时间以及错误。

请检查: https : //gielberkers.com/solving-too-late-for-the-schedule-with-magento-crons/

它会给你可能的选项来检查/验证设置。

同时检查“date_default_timezone_set”单词的扩展代码,并查看默认值是什么。 和你的magento商店一样吗?

我想你需要在你的服务器上安装两个cron作业。 尝试通过提供其路径来运行另一个网站的cron.php。

喜欢

 */5 * * * * php -f /var/www/html/sitename/cron.php */5 * * * * php -f /var/www/html/sitename-2/cron.php 

同时检查cron日志

 sudo grep CRON /var/log/syslog 

执行这个命令,你可以看到你的cron是否在运行。