Finding the status of Magento cron jobs / tasks
Once your crontab is properly installed and configured, you might be curious as to what it’s actually doing behind the scenes, or you might want to verify that something did / did not happen, and when.
Since Magento lacks this arguably critical information, we’ve whipped up a simple PHP script that can show you what’s scheduled, what’s running, and what already ran, along with all the other information hiding in the ‘cron_schedule’ table of your Magento database.
Simply drop the script (linked to below) into your base HTML directory for Magento (usually this will be your “public_html” directory), change the file extension to “.php” instead of “.phps”, and load it up in your favorite browser.
Copy and save the following PHP script.
<?php // Parse magento's local.xml to get db info, if local.xml is found if (file_exists('app/etc/local.xml')) { $xml = simplexml_load_file('app/etc/local.xml'); $tblprefix = $xml->global->resources->db->table_prefix; $dbhost = $xml->global->resources->default_setup->connection->host; $dbuser = $xml->global->resources->default_setup->connection->username; $dbpass = $xml->global->resources->default_setup->connection->password; $dbname = $xml->global->resources->default_setup->connection->dbname; } else { exit('Failed to open app/etc/local.xml'); } // DB Interaction $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to <a class="HelpLink" onclick="showHelpTip(event, hint_id_7); return false;" href="javascript:void(0)">mysql</a>'); mysql_select_db($dbname); $result = mysql_query("SELECT * FROM " . $tblprefix . "cron_schedule") or die (mysql_error()); // CSS for NexStyle echo ' <html> <head> <title>Cron tasks Status</span>> <style type="text/css"> html { width: 100%; font-family: Helvetica, Arial, sans-serif; } body { background-color:#00AEEF; color:#FFFFFF; line-height:1.0em; font-size: 125%; } b { color: #FFFFFF; } table{ border-spacing: 1px; border-collapse: collapse; width: 300px; } th { text-align: center; font-size: 125%; font-weight: bold; padding: 5px; border: 2px solid #FFFFFF; background: #00AEEF; color: #FFFFFF; } td { text-align: left; padding: 4px; border: 2px solid #FFFFFF; color: #FFFFFF; background: #666; } </style> </head>'; // DB info for user to see echo ' <body> PrashantBlog <b>Table Prefix:</b> ' . $tblprefix . '' . '<b>DB Host:</b> ' . $dbhost . '' . '<b>DB User:</b> ' . $dbuser . '' . '<b>DB Name</b>: ' . $dbname . '</p>'; // Set up <span style="background-color:#CCFF00;">the</span> table echo " <table border='1'> <thread> <tr> <th>schedule_id</th> <th>job_code</th> <th><span style="background-color:#CCFF00;">status</span></th> <th>messages</th> <th>created_at</th> <th>scheduled_at</th> <th>executed_at</th> <th>finished_at</th> </tr> </thread> <tbody>"; // Display <span style="background-color:#CCFF00;">the</span> data from <span style="background-color:#CCFF00;">the</span> query while ($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td>" . $row['schedule_id'] . "</td>"; echo "<td>" . $row['job_code'] . "</td>"; echo "<td>" . $row['<span style="background-color:#CCFF00;">status</span>'] . "</td>"; echo "<td>" . $row['messages'] . "</td>"; echo "<td>" . $row['created_at'] . "</td>"; echo "<td>" . $row['scheduled_at'] . "</td>"; echo "<td>" . $row['executed_at'] . "</td>"; echo "<td>" . $row['finished_at'] . "</td>"; echo "</tr>"; } // Close table and last few tags echo "</tbody></table></body></html>"; mysql_close($conn); ?>