Script pour garder en pleine forme Magento.

Script pour garder en pleine forme Magento.

Avec un éditeur de texte nous allons créer un fichier script.sh,

Il doit impérativement commencer par : #!/bin/sh

Nous allons y mettre tout ce que votre serveur Magento a besoin de faire régulièrement.

  • Nettoyer les log de la base de données régulièrement
  • Exécuter la tache Cron.sh de Magento
  • Vider la corbeille du serveur
  • Vider dossier cache et session*
  • Redémarrer les Services apache
  • Redémarrer les Services Mysql
* Mise en garde : vider les sessions a pour effet de vider les paniers en cours et déconnecte les utilisateurs en cours.

_______________________________________________________

 Nettoyer les log de la base de données régulièrement

1) Créer un fichier est les instructions Mysql pour vider les table de Log

Créer avec un éditeur un fichier texte , nommez -le : Vider_table_log.mysql

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;

Enregistrez les dans votre dossier /magento/shell/

2) On va créer le Script de purge :

#!/bin/sh
# La première ligne sert à spécifier quel shell tu veux excéuter. ici sh
# pour executer un script il faut
# 1) changer c'est droit pour devenir executable:  chmod +x NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

############################################################
#### ETAPE 1 Nettoyer les log de la base de données ###########
############################################################

#### Connexion a votre Base de Données Magento Mysql ####
##### mysql -h machine -u utilisateur -pMotdePase base_de_données
##  Exemples :
##  mysql -h localhost -u User161 -p35hpzq.. Base161
##  mysql -h 17.31.2.67 -u User161 -p35hpzq.. Base161
## vous pouvez tester dans un terminal, Si vous ête connecté il doit apparaitre :  Mysql>
##  Modifier ci-dessous pour mettre vos paramètre

mysql -h localhost -u User161 -p35hpzq.. Base161 < /magento/shell/Vider_table_log.mysql 
echo "si vous n'avez vu aucun message d'erreur la base est purgé :)"

#########################################################
#### ETAPE 2 Exécuter la tache Cron.sh de Magento #######
#########################################################
/var/www/vhosts/VotreSite.fr/httpdocs/DossierMagento/cron.sh

#########################################################
#### ETAPE 3 Vider la corbeille du serveur ################
#########################################################
rm -r -f /var/.Trash-0/

#########################################################
#### ETAPE 4 Vider cache et session #######################
#########################################################
rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/cache

# Attention cette ligne va également vider les panier en cours et déconnecter les utilisateurs
rm -r  -f /var/www/vhosts/VotreSiteInternet/httpdocs/VotredossierMagento/var/session

#########################################################
#### ETAPE 5 Redémarrer les Services apache #############
#########################################################
service apache2 restart

#########################################################
#### ETAPE 6 Redémarrer les Services mysql ##############
#########################################################
service mysql restart

3) Exécuter :

  • Enregistrer le fichier dans un  dossier de votre Serveur, par exemple
     /var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh
  • Ajouter le Droit de l’exécuter :
    chmod +x /var/MesSauvegarde/sauvegarde.sh
  • Pour l’exécuter il vous reste plus qu’a taper :
    ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

______________________________________________________

Vous n’avez plus qu’a insérer ce petit script dans un tâche Planifiée avec Cron ou Gmone-schedule


Créer une tâche Planifiée

  • Démarrez Tâche Planifiées > Applications > Outils système > Tâches Planifiées
  • Cliquez sur Nouveau
  • Cliquez sur Une tâche lancée régulièrement
  • Saisissez une Description “Script Magento en pleine forme”
  • Commande : Précisez votre Script ou la ligne de commande :  ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 7H00 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 7 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

Vous pouvez Cliquez sur  Lance la tache Sélectionner + “Exécuter” pour tester la tache.

___________________________________________________________________

Ou  avec crontab  (Planificateur de tâche en ligne de commande )

(sans gnome-schedule), tapez :
crontab -e
insérez : 0 7 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

Explication des instructions crontab sur wikipedia


 j’ai fait un tutoriel sur les taches Planifiées ici

_______________________________________________________

On peut aussi ajouter:

  • Sauvegarder la base de Magento
  • Compresser cette sauvegarde
  • Copier cette Sauvegarde vers un autre dossier

Voir tutoriel Créer une sauvegarde Mysql Magento en ligne de commande ici

, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

  1. #1 par David Porré le 5 décembre 2012 - 13:29

    Bonjour,

    Super tuto, merci !!

    De mon côté, sur Cent OS et PHP 5.3, j’ai du faire quelques modifs.

    Dans mon php.ini, j’ai commenté la ligne « safe_mode = On » pour éviter l’erreur « Stopping httpd: PHP Deprecated: Directive ‘safe_mode’ is deprecated in PHP 5.3 and greater in Unknown on line 0 ».

    Et dans le script, j’ai remplacé :
    service apache2 restart par /etc/init.d/httpd restart
    et
    service mysql restart par /etc/init.d/mysqld restart

    Ca a l’air de fonctionner comme il faut.

    Cordialement,
    David

  2. #2 par axel le 10 février 2015 - 11:01

    bonjour,
    pas de risque à laisser un .sh en 777 avec tous les accès BDD ?
    Merci à vous

    • #3 par ek0892 le 10 février 2015 - 14:09

      tu as raison , il vaut mieux remplacer 777 par +x

  3. #4 par Jean-Claude M. le 18 février 2016 - 18:01

    Bonjour Eric et encore merci pour tout ce que tu as partagé sur ce site… j’y viens et j’y reviens…
    Pour une fois, peut-être pouvoir y apporter qqchose….

    En effet, lors de la purge des fichiers sessions, plutôt qu’un « rm » complet de tous les fichiers, causant effectivement la perte des paniers et des sessions visiteurs, j’utilise la commande suivante qui permet de supprimer tous les fichiers dont la date est supérieure à 1 jour ! (et de garder donc les paniers du jour et sessions actives) :

    ex : find . -name * -mtime 1 | xargs rm -f

    (à vérifier, je la tape ici de mémoire…)
    merci
    Jean-Claude

  1. Serveur idéal pour Magento de A à Z (sous Ubuntu 10.04 + Plesk OVH) | Eric Kranich
  2. Purger pour réduire la base MySQL de Magento et Planifier | Eric Kranich
  3. Copier tout Magento (Base+Dossier) entre 2 serveurs automatiquement et planifiée | Eric Kranich

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :