Archives pour la catégorie Sauvegardes Magento

Réparer Magento avec Magento-db-repair-tool

voir tutoriel : https://erickranich.wordpress.com/2014/07/03/methode-pour-reparer-une-mise-a-jour-magento-qui-a-plante/#repair

 

 

 

 

 

Publicités

Script d’une sauvegarde de la Base Mysql de Magento

Création d’un Script de sauvegarde

Nous avons besoin de faire quoi

  1. De sauvegarder la base (Mysqldump)
  2. De changer les droits de la sauvegarde (chmod)
  3. De Compressez la sauvegarde (Gzip)

J’ai fait un tutoriel sur  le Script :

#!/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 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

mysqldump -u Login -pMotdePasse NomBase >/VotreChemin/Sauvegarde.sql 

chmod 777 /VotreChemin/Sauvegarde.sql 

gzip -f -9 /VotreChemin/Sauvegarde.sql

Créer une Tache pour Chaque jour de la semaine avec un nom de Sauvegarde différent (SauvegardeDuLundi.sql, Mardi.sql, etc..,) vous pouvez aussi faire Janvier, Fevrier, etc..

Les Habitués du script ajouteront une variable

______________________________________________________

2) Créer une tâche Planifiée avec Gnome-schedule

  • Si vous utilisez gnome-schedule :
  • 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 “Ma sauvegarde du Lundi”
  • Commande : Précisez votre Script ou la ligne de commande :  ./CheminDuScrip/script.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine 1 = à 7H00 tous les lundi
  • Ajouter et Valider

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

3)  Ou créer une tâche Planifiée avec crontab :

Planificateur de tâche en ligne de commande

(sans gnome-schedule), tapez :
crontab -e
insérez : 0 7 * * * ./CheminDuScrip/script.sh

Explication des instructions crontab sur wikipedia


J’ai fait aussi un tutoriel pour planifier cette sauvegarde toutes les nuits : voir ici : Comment planifier des taches magento avec planificateur taches gnome schedule

Copier tout Magento (Base+Dossier) entre 2 serveurs automatiquement et planifiée

Pour copier Magento entre deux serveurs, automatiquement la Nuit .

J’ai déja fait des script et des tutoriels pour chaque étape:

Tutoriel Comment :

1) il y a 3 Scripts à créer suivez chacun de ces tutoriels :

  1. Désactiver ReWrite dans l’admin >> sytème >> Configuration >> Web >> Utiliser les réécriture du serveur web  mettre NON
  2. Purger les Log pour Réduire la Base et vider la cache
  3. Copier la Base Mysql entre deux serveurs
  4. Copier le dossier Magento en ligne de commande FTP
  5. Modifier Le core_data_config

_________________________________________________________

2) Il n’y a plus qu’a  faire un script qui lance 4 scripts 🙂

A saisir dans un éditeur de texte et enregistrez sous : /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.sh

#!/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 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

############################################################
#### ETAPE 1 Nettoyer les log .. Exécution du script 1 #########
############################################################
./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_pour_pourger_logs.sh

############################################################
#### ETAPE 2 récupérer la base Mysql et la restaurer #########
############################################################

 ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

############################################################
############# ETAPE 4 Copier les Dossiers en FTP ############
############################################################
./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp 

############################################################
############# ETAPE 4 Modifier le Core_data_config #########
############################################################
./var/vhosts/VotreSite.fr/httpdocs/VotreMAgento/shell/Script_core_config_data

5) Vous n’avez plus qu’a insérer ce petit script dans un tâche Planifiée avec Crontab 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 “Ma sauvegarde”
  • Commande : Précisez votre Script ou la ligne de commande :  ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 5H00 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.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 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_complet_2serveurs.sh

Explication des instructions crontab sur wikipedia


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

Script de copie base Mysql entre deux serveurs (magento, Prestashop..)

Le but est de copier une base Mysql entre deux serveurs automatiquement, par exemple toute les nuits à 5h30 du matin.

  • Vérifier que les accès Mysql soient ouverts dans my.cnf
  • avoir au moins une base créer vierge sur le Serveur de destination (la première)
  • créer un petit Script.sh
  • Planifié le Scritp (Cron)

1) Ouvrir l’accès Mysql vers l’extérieur :

  • Editez le fichier : /etc/mysql/my.cnf
  • Commentez la ligne avec un # : skip-networking et Bind-address
  • Redémarrer  : Service mysql restart

J’ai fait un tutoriel ici : Explication pour Autoriser la connexion a distance MySQL

2) La première fois :

Créer une base de donnée vierge et un utilisateur sur le serveur de destination (Cible).

Si vous avez Plesk :

  • Créer la base vièrge : Dans Plesk >  Accueil> Abonnements> VoreSiteWeb> Sites Web & Domaines> Bases de données > Sélectionnez > Ajouter une nouvelle Base de données

3) Création et Exécution du Script:

Il doit être placé et exécuté dans un dossier du serveur de destination (cible)

Avec un éditeur de texte vous créer un fichier ici et sous le nom : /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

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

Remplacer

LoginBaseDistant : le nom de l'utilisateur de la base distante 
MotdePasseBaseDistant : Mot de passe de la base distante
NomBaseDistant : nom de la base distante 
VotreCheminCible : Votre dossier de destinations
#!/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 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

echo "Etape 1 ) Récupération de la base distante et sauvegarde en cours..."
 mysqldump -h 192.154.154.10 -u LoginBaseDistant -pMotdePasseBaseDistant NomBaseDistant >/VotreCheminCible/Sauvegarde.sql 

chmod 777 /VotreCheminCible/Sauvegarde.sql  

echo "Etape 2 ) Restauration sur ce serveur de cette sauvegarde en cours..."

mysql -u LoginBase -pMotdePasseBase NomBase </VotreCheminCible/Sauvegarde.sql 

echo "Terminée"
  • Enregistrer le fichier dans un  dossier de votre Serveur, par exemple /var/MesSauvegarde/sauvegardeMysql.sh
  • Ajouter le Droit de exécuter : chmod 777 /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh
  • Pour exécuter il vous plus qu’a taper :
    ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

4) Modifier automatiquement : Core_Config_data

Pour Magento : Ajouter des instructions Mysql pour Modifier automatique le fichier Core_Config_data :

si votre Serveur Destination n’a pas le même dossier pour Magento, et certainement par la même URL, voici ce de vous devez ajouter ceci au Script pour qu’il modifie automatiquement le  Core_Config_data :

C’est très simple, dans un petit fichier texte vous saisissez les instructions Mysql que vous avez besoin, vous ajoutez un ; a la fin de chaque ligne.

Dans un Fichier texte appeler :mes.mysql

je saisie ces deux lignes pour Modifier le Core_config_data de Magento

update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/secure/base_url";
update core_config_data set  value="http://MonSite/MonDossierMagento/" where path="web/unsecure/base_url";

Pour l’exécuter, je peux saisir :

Mymysql -h localhost -u User161 -p35hpzq.. Base161 < mes.mysql

Ou vous ajouter au  Script   (voir Tuto créer un Script)

#!/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 777 NomDuScrip.sh
# 2) puis l'executer : ./NomDuScrip.sh

echo "Lancement du Script"
mysql -h localhost -u User161 -p35hpzq.. Base161 <mes.mysql
Echo "Terminé"

5) Vous n’avez plus qu’a insérer ce petit script dans un tâche Planifiée avec Crontab 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 “Ma sauvegarde”
  • Commande : Précisez votre Script ou la ligne de commande :  ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine * = à 5H00 tous les jours
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.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 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_Mysql.sh

Explication des instructions crontab sur wikipedia


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

_______________________________________________________


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

C2) Permuter entre deux serveurs Magento.

Si vous changez les DNS de vos noms de domaines pour basculer vers un nouveau serveur, la diffusion prend 48H pendant ce temps vous ne savez pas sur quel serveur vous serrez.

Pour le répertoire Magento, c’est pas trop grave du moment que vous utilisez le même nom de dossier et le même nom de domaine.

Par contre la Base de donnée elle risque de ne plus être à jour, car vous risquez d’avoir des commande sur le Serveur 1 et sur le serveur 2

La Solution:

1) Copier le Site et la Base de donnée

J’ai fait de nombreux tutoriels selon les cas ici : Sauvegardes Magento

3) Autoriser l’accès à la base de donnée Mysql a distance dans le my.cnf : j’ai fait un tuto sur ce sujet ici

Dès que vous êtes Prêt a Basculer :

4) Modifier le Local.xml du la Base du Serveur Numéro 1

4a) Mettez-y les paramètre pour utiliser la base du Serveur N°2

Local.xml

il est nécessaire de modifier local.xml

  1. Ce Fichier ce trouve dans votre dossier magento : magento/app/etc/local.xml
  2. Il faut éditer le fichier local.xml de magento/app/etc/local.xml avec un éditeur de texte : sous linux avec Geany, sous windows avec NotePad++
  3. Pour Mettre les informations concernant votre nouvelle Base MySQL de Magento et le nouveau serveur:
  • IpDuNouveauServeur : c’est l’ip du serveur Distant Mysql
  • LoginDeLABase : Le nom de l’utilisateur de la base MySQL/Magento Distante
  • MotDePasse : Le mot de Passe de l’utilisateur de la Base distante
  • NomDelaBase : Le Nom de Base MySQL/Magento Distante
 /Magento/app/etc/local.xml 

     default_setup
            connection
                host  ![CDATA[IpDuNouveauServeur]]  /host
           username  ![CDATA[LoginDeLaBase]]  /username
            password  ![CDATA[MotDePasse]]  /password
            dbname  ![CDATA[NomDeLaBase]]  /dbname
            active 1 /active
        /connection
     /default_setup
/resources
session_save  ![CDATA[files]]  /session_save
/global
admin
    routers
        adminhtml
            args
              frontName  ![CDATA[admin]]  /frontName

5) Important :

Vider la cache et les Sessions :  Dans le Dossier /magento/var/cache et /magento/var/session

Si non la modification du Local.xml ne sera pas pris en compte.


6) Pointer vos noms de Domaine vers IP (DNS) du nouveau Serveur

Attention ça peut prendre 24/48H de propagation…

Vu que vous avez déja la base de données Magento qui pointe vers le nouveau serveur, vous pouvez, Changer des Prix, traiter des Commandes etc…

Mais n’ajoutez rien Produits, images, etc.. pendant le temps de la Propagation.

Terminé 🙂


Si vous Utilisez un Ip FailOver j’ai fait ce tutoriel ici : Permuter entre deux serveurs avec ip failover Ovh sous plesk


Script sauvegarde du dossier Magento entre deux serveurs

Pour copier le dossier de Magento entre deux serveurs, automatiquement la Nuit .

il faut :

  • Installer curlftpfssur les serveurs (au moins sur celui Destination)
  • Créer un Script de copie entre les deux serveurs
  • Planifier l’exécution du script la nuit (matin très tôt +-5h)

Pour installer curlftpfssur  soit en ligne de commande dans un terminal (ssh avec putty.exe), tapez

sudo apt-get install curlftpfs

Soit sous gnome si vous acceder a gnome via un interface grahique voir FreeNX

> ubuntu > applications >Logithèque Ubuntu > curlftpfss

_______________________________________________________

voici que que nous allons mettre dans le Script

A saisir dans un éditeur de texte : enregistrez sous : /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp.sh


#!/bin/sh
# La première ligne sert à spécifier quel shell à excéuter. (sh)
# pour executer un script il faut
# a) changer le droit devenir executable:  chmod 777 NomDuScrip.sh
# b) puis l'executer : ./NomDuScrip.sh
##################################################################

#  Création de deux dossiers temporaires sur votre serveur :  /
mkdir /var/ftpt
mkdir /var/ftptemp

# 2 Activer la connexion du serveur distant en FTP vers ce dossier /var/ftp
# Vous devez connaitre le nom du ServeurFTP, Login et Mot de passe
curlftpfs ftp://MonServeurFtp.fr/DossierDistant /var/ftp -o user=Login:MotDePasse

# 3 Purger la cache du serveur distant :
rm -Rf /MonFtp/Magento/var/cache
rm -Rf /MonFtp/Magento/var/session

# 4 Purger la cache du serveur destination :
rm -Rf /var/www/vhosts/VotreSite.fr/httpdocs/Magento/var/cache
rm -Rf /var/www/vhosts/VotreSite.fr/httpdocs/Magento/var/session

# 5 sauvegarder .htaccess et local.xml du serveur Destination
cp /var/www/vhosts/VotreSite.fr/httpdocs/Magento/app/etc/local.xml /var/ftptemp/sauvegarde_local.xml
cp /var/www/vhosts/VotreSite.fr/httpdocs/Magento/.htaccess /var/ftptemp/sauvegarde_htaccesslocal
#
# 6 Copie du dossier Magento (Serveur distance source) vers le celui-ci
# avec la commande cp -r  vous pouvez ajouter 
# -uNe pas effectuer la copie si le fichier destination existant a une
# date  de  modification  plus  récente que celle du  fichier source.
cp -r -u /var/ftp/magento /var/www/vhosts/MonSite.fr/httpdocs/
#
# 6 Remettre .htaccess et local.xml du serveur Destination
cp /var/ftptemp/sauvegarde_local.xml /var/www/vhosts/VotreSite.fr/httpdocs/Magento/app/etc/local.xml
cp /var/ftptemp/sauvegarde_htaccess /var/www/vhosts/VotreSite.fr/httpdocs/Magento/.htaccess
#
# 7 Vérifier les Droits
chmod -R 777 /var/www/vhosts/VotreSite.fr/httpdocs/Magento/
#
# 8 Désactiver le ftp /var/ftp/ (démonter)
umount /var/ftp
#
# 9 supprimer des dossiers temporaires /var/ftp et /var/ftptemp
rm -Rf /var/ftp
rm -Rf /var/ftptemp

#
#
# Terminée....

Pour Exécuter le script :

changer le droit devenir executable:

chmod 777 /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp.sh 


Exécuter :

./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp.sh 

_______________________________________________________

Attention : Il faut aussi copier la base de données Mysql de Magento

J’ai fait deux autres tutoriels  dont  un qui regroupe les deux en mêmes temps Base + Dossier ici : Tutoriel pour automatiser une copie total de magento entre deux serveurs

et un juste pour la Base Mysql ici : Comment créer un script de copie base mysql-entre deux serveurs magento prestashop

_______________________________________________________

Créer un Tache Planifier pour lancer ce script Automatiquement :

Créer une tâche Planifiée

Pour installer le planificateur taches gnome schedule suivre ce tutoriel.

  • 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 “Ma sauvegarde”
  • Commande : Précisez votre Script ou la ligne de commande :./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp.sh
  • Expert saisissez : Minute 0 – Heure 7 – jour * – Mois * – jour de la semaine 1 = à 7H00 tous les lundi
  • Ajouter et Valider
  • Voila Gnome-schedule a inséré pour vous la ligne cron
    0 5 * * * ./var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp.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 5 * * *
    /var/vhosts/VotreSite.fr/httpdocs/VotreMagento/shell/Script_sauvegarde_ftp.sh
  • Explication des instructions crontab sur wikipedia

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

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

Planifier une Sauvegarde d’un Serveur PLESK

  1. Sauvegarde vers un dossier (répertoire) du Serveur.
  2. Sauvegarde vers un dossier en FTP ( vers un autre Hébergement)

Ce que vous allez voir ici est valable aussi bien au Niveau du Serveur ou dans un domaine du Serveur :

1) Sauvegarde vers un dossier (répertoire) du Serveur ou d’un domaine (même Manip).

La manipulation est très simple, dans Plesk :

Sauvegarde Serveur: Plesk Accueil> Outils & Paramètres > Gestionnaire de sauvegardes

Sauvegarde Domaine: Plesk Accueil> Abonnements>  Votre Domaine> Sites Web & Domaines > Gestionnaire de sauvegardes

Remplir le Formulaire :

  • Activer cette tâche de sauvegarde « oui« 
  • Périodicité des sauvegardes « jour/Semaine/mois/
  • Démarrer la création de la sauvegarde à (HH:mm) *: Je conseille Tard dans la nuit, pas en même temps qu’une autre Tache Planifier
  • Nombre maximum de sauvegardes dans le répertoire : 3 devrais suffire
    c’est pour économiser l’espace disque, vous pouvez limiter le nombre de sauvegardes. Une fois cette limite atteinte, les nouvelles sauvegardes remplaceront les anciennes dans le répertoire.
  • Suspendre les domaines jusqu’à la fin de la tâche de sauvegarde : si vous avez de problème de ressource ou des échecs, Cochez cette Case.

La sauvegarde par Plesk sera sur votre serveur ici : /var/lib/psa/dumps/ + domains/  pour une sauvegarde juste d’un domaine

Note : Surveiller la taille de ce dossier, vous pourrier Saturer votre Serveur.


2) Sauvegarde vers un répertoire FTP.

Note : Il est inutile de faire un Sauvegarde vers un dossier (répertoire) du Serveur. si vous faites des sauvegardes en FTP, simplement car ce choix FAIT AUSSI la Sauvegarde vers un dossier du serveur avant transférer en FTP

Il est nécessaire d’avoir un petit hérbergement FTP ( personnel) pour procéder a ce type de sauvegarde.

a)  Dans Plesk :

Sauvegarde Serveur: Plesk Accueil> Outils & Paramètres > Gestionnaire de sauvegardes

Sauvegarde Domaine: Plesk Accueil> Abonnements>  Votre Domaine> Sites Web & Domaines > Gestionnaire de sauvegardes

Remplir le Formulaire avec les information de Votre compte FTP :

  • Nom d’hôte ou adresse IP du serveur FTP *
  • Répertoire pour le stockage des fichiers de sauvegardes
  • Nom d’utilisateur FTP *
  • Mot de passe FTP

b) Dans Plesk : Outils & Paramètres>Répertoire du serveur> Gestionnaire de sauvegardes > Paramètres de la sauvegarde planifiée

Remplir le Formulaire :

  • Activer cette tâche de sauvegarde « oui« 
  • Périodicité des sauvegardes « jour/Semaine/mois/
  • Démarrer la création de la sauvegarde à (HH:mm) *: Je conseille Tard dans la nuit, pas en même temps qu’une autre Tache Planifier
  • Nombre maximum de sauvegardes dans le répertoire : 3 devrais suffire
    c’est pour économiser l’espace disque, vous pouvez limiter le nombre de sauvegardes. Une fois cette limite atteinte, les nouvelles sauvegardes remplaceront les anciennes dans le répertoire.
  • Configuration et contenu du domaine: choisir intégralité de la configuration et du contenu
  • Suspendre les domaines jusqu’à la fin de la tâche de sauvegarde : si vous avez de problème de ressource ou des échecs, Cochez cette Case.

La sauvegarde par Plesk sera sur votre serveur ici : /var/lib/psa/dumps/ +domains/ pour une sauvegarde juste d’un domaine

Note : Surveiller la taille de ce dossier, vous pourrier Saturer votre Serveur  et l’espace disponible sur votre FTP



La sauvegarde par Plesk sera sur votre serveur

ici :

/var/lib/psa/dumps/ +domains/ pour une sauvegarde juste d'un domaine