Knowledgebase: Magento
Magento Log and Cache Maintenance Script
Posted by ASO Admin on 11 February 2020 11:00 AM
  1. 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);
        }
    }
  2. Save the file to the directory where Magento resides

  3. Log into cPanel and click the Cron Manager link

  4. In the Add Cron Job section, select Once a day from the Common Settings dropdown list

  5. 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
     
  6. Once you have this set at your preferred interval, click the Add Cron Job button

  7. 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
    ​
    
  8. Now click the Add Cron Job button

  9. 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


​Check out the rest of our Magento articles to get more info and help.

(0 vote(s))
This article was helpful
This article was not helpful

Comments (0)
Post a new comment
 
 
Full Name:
Email:
Comments:
Help Desk Software by Kayako fusion
ERROR: This domain name (kb.asmallorange.com), does not match the domain name in the license key file help.asmallorange.com.

For assistance with your license, please contact the Kayako support team: https://support.kayako.com