Magento – nettoyage des logs et de la base de données

Lors de l’utilisation intensive de Magento, la base de données grossit de manière importante. Il est nécessaire de mettre en place une purge des logs. Il existe 2 solutions :

  • Depuis l’administration de magento,
  • Par script SQL directement dans la base de données.

I. Planification de la purge depuis Magento

Il est possible depuis l’administration de Magento de déclencher cette fonction : Menu Système -> Configuration, Onglet Paramètres avancés -> Système.

Mais cette solution implique le paramétrage de la tâche cron.php de Magento. Ce script doit être lancée à intervalle régulier par un ordonanceur (sous Linux il s’agit de crontab). Je préfère utiliser la deuxième solution, bien que plus intrusive (on modifie directement la base de données). En effet si l’on souhaite utiliser la planification interne de Magento, il est indispensable de checker l’ensemble des tâches lancées par l’ordonnaceur (mail de relance intempestif par exemple, et toutes les extensions installées qui peuvent ajouter leurs propres tâches…)

II. Script de purge Mysql

Voici le script SQL que nous utilisons sur nos installations Magento :

DELETE FROM dataflow_batch_export;
DELETE FROM dataflow_batch_import;
DELETE FROM log_customer;
DELETE FROM log_quote;
DELETE FROM log_summary;
DELETE FROM log_summary_type;
DELETE FROM log_url;
DELETE FROM log_url_info;
DELETE FROM log_visitor;
DELETE FROM log_visitor_info;
DELETE FROM log_visitor_online;
DELETE FROM report_viewed_product_index;
DELETE FROM report_compared_product_index;
DELETE FROM report_event;

Ce script SQL est lancé toutes les nuits à partir d’un shell ordonnancé par la crontab. Voici un exemple de shell  :

#Purge des logs et du cache magento
rm -rdf /home/mon_install_magento/var/log
rm -rdf /home/mon_install_magento/var/cache

# Suppression des sessions non modifiées depuis plus de 24 heures
find /home/mon_install_magento/var/session/ -atime +1 | xargs rm -f

mysql --user=root --password=<mon_mot_passe> <ma_base_magento> < nettoyage.sql

Ensuite il suffit de planifier l’exécution de ce script tous les jours durant la nuit.

Magento – nettoyage des logs et de la base de données

Tagged in:, ,

0 Comments

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.