Magento Log and Cache Maintenance Script
-
Create a file called cleanup.php and add the following code to it (where your specific info is subbed into the section below 'Magento Maintenance Script')
<?php /** * Magento Maintenance Script * * @version 3.0.1 * @author Web Hosting Company <[email protected]> * @copyright Copyright (c) 2006-2013 Web Hosting Company * @link http://www.thatsite.com Web Hosting Company */ switch($_GET['clean']) { case 'log': clean_log_tables(); break; case 'var': clean_var_directory(); break; } function clean_log_tables() { $xml = simplexml_load_file('./app/etc/local.xml', NULL, LIBXML_NOCDATA); if(is_object($xml)) { $db['host'] = $xml->global->resources->default_setup->connection->host; $db['name'] = $xml->global->resources->default_setup->connection->dbname; $db['user'] = $xml->global->resources->default_setup->connection->username; $db['pass'] = $xml->global->resources->default_setup->connection->password; $db['pref'] = $xml->global->resources->db->table_prefix; $tables = array( 'aw_core_logger', 'dataflow_batch_export', 'dataflow_batch_import', 'log_customer', 'log_quote', 'log_summary', 'log_summary_type', 'log_url', 'log_url_info', 'log_visitor', 'log_visitor_info', 'log_visitor_online', 'index_event', 'report_event', 'report_viewed_product_index', 'report_compared_product_index', 'catalog_compare_item', 'catalogindex_aggregation', 'catalogindex_aggregation_tag', 'catalogindex_aggregation_to_tag' ); mysql_connect($db['host'], $db['user'], $db['pass']) or die(mysql_error()); mysql_select_db($db['name']) or die(mysql_error()); foreach($tables as $table) { @mysql_query('TRUNCATE `'.$db['pref'].$table.'`'); } } else { exit('Unable to load local.xml file'); } } function clean_var_directory() { $dirs = array( 'downloader/.cache/', 'downloader/pearlib/cache/*', 'downloader/pearlib/download/*', 'media/css/', 'media/css_secure/', 'media/import/', 'media/js/', 'var/cache/', 'var/locks/', 'var/log/', 'var/report/', 'var/session/', 'var/tmp/' ); foreach($dirs as $dir) { exec('rm -rf '.$dir); } }
-
Save the file to the directory where Magento resides
-
Log into cPanel and click the Cron Manager link
-
In the Add Cron Job section, select Once a day from the Common Settings dropdown list
-
In the Command field, enter the following line of code, making sure to replace the domain name with your own:
curl -s -o /dev/null http://www.domain.com/cleanup.php?clean=log
-
Once you have this set at your preferred interval, click the Add Cron Job button
-
Repeat the same steps as you did before, but change the Common Settings dropdown selection to 1st and 15th, and add the following line of code to the Command field:
curl -s -o /dev/null http://www.domain.com/cleanup.php?clean=var
-
Now click the Add Cron Job button
-
While you're on this page, it's a good idea to set the Email Address to something other than your username, otherwise your
mail/new
directory will fill up very quickly every time a cron job runs (assuming it produces output); You can leave it blank or use an actual email address