Create a file called cleaner.php and add the following code to it:
<?php 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.'`'); } echo "All log files have been cleaned."; } 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); } echo "All var files have been cleaned."; } ?>
Save this file to the root of your Magento directory.
You can run this file either by hitting the URL directly through your web browser,like:
http://yourdomain.com/cleaner.php?clean=log http://yourdomain.com/cleaner.php?clean=var
OR, you can set a cron job for this. Open cPanel, go to Cron Jobs->Add New Cron Job. Set the cron job to run once a day and add following command:
php -f /home/<yourhostname>/cleaner.php?clean=log
Repeat the same steps, but change the Common Settings dropdown selection to 1st and 15th (0 0 1,15 * *),and add the following command:
php -f /home/<yourhostname>/cleaner.php?clean=var