X
    Categoria: Magento

Script de manutenção para Magento – Limpar logs e Cache

 

Se não for controlada, os arquivos de sessão Magento podem crescer fora de controle e ter um impacto negativo sobre o seu desempenho de sites (além como ocupando muito espaço de armazenamento).

Este artigo explica como se certificar que os arquivos de sessão antigos são removidos automaticamente.

Lojas Magento possui seus arquivos de sessão em var/session/ e eu já vi muitas instalações Magento onde o tamanho deste diretório tem crescido em gigabytes. Uma olhada rápida deste diretório deve dizer se você tem um problema ou não.

Outro problema se refere há muitos dados de logs no banco de dados, o que pode ocasionar um aumento significativo da sua base de dados.

Para automatizar esse processo vamos configurar um script cron simples de fazer uma limpeza geral em sua loja.

Para este exemplo, vamos dizer que o caminho para a instalação do Magento é /path/to/magento e queremos excluir os arquivos de sessão com mais de uma semana.

criamos um arquivo limpeza.php com o seguinte código:

 

<?php

/**
 * Script manutenção magento
 *
 * 
@version    1.0
 * 
@author     Canal da Web <contato@canaldaweb.com.br>
 
* @copyright  Copyright (c) 2014 Canal da Web. 
*@link       http://www.canaldaweb.com.br  Canal da Web
 
*/
 

switch($_GET['comando']) {
    
case 'logs':
        limpar_log_tables();

    break;
    
case 'pastas':
        
limpar_log_diretorios();

    break;

}

function limpar_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('Nao foi possivel carregar o arquivo local.xml');
    }


}


 
function limpar_log_diretorios() {
    

$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);
    

}


}

Salve o arquivo no seu diretório magento e configure seu crontab. deixe para executar o comando abaixo 1 vez por dia.

curl -s -o /dev/null http://www.seudominio.com.br/limpeza.php?comando=logs

agora coloque para executar o comando abaixo a cada 15 dias.

curl -s -o /dev/null http://www.seudominio.com.br/limpeza.php?comando=pastas

 

* caso você esteja configurando diretamente no linux poderá usar o comando crontab -e para acessar seu crontab e configura-lo.

 

 

Juliano Rossetto: Formado em Analise e Desenvolvimento de Sistemas. Desenvolvedor dos principais CMS ( Wordpress, Joomla). Desenvolvedor de E-commerce (Opencart e WooCommerce). Analista de SEO: Otimização de sites para mecanismos de buscas. Analista de Infraestrutura voltado para servidores na nuvem: Amazon Web Services (AWS), DigitalOcean e Linode. Para dúvidas ou serviços entre em contato aqui.
Posts relacionados