Create a file called cleanup.php and add the following code to it:
<?php
/**
* Magento Maintenance Script
*
* @version 3.0.1
* @author Crucial Web Hosting <[email protected]>
* @copyright Copyright (c) 2006-2013 Crucial Web Hosting, Ltd.
* @link http://www.crucialwebhost.com Crucial Web Hosting
*/
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.
Next, login to cPanel and click on 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.