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.

2017-01-24T20:24:38+00:00

RECEBA DICAS VALIOSAS NO SEU EMAIL

x