Avoir un site web c’est bien, mais en faire des sauvegardes ça peut toujours être utile. L’objectif de cet article est de vous montrer comment on sauvegarde notre base de données. Le principe de cette sauvegarde est simple. Ovh éxecute un script que l’on aura stocké sur notre espace personnel. Ce script sauvegardera notre base de données et on obtiendra un fichier SQL contenant notre BDD. Ensuite, un autre script, qui se trouve sur mon serveur personnel, se connectera afin d’aller chercher cette sauvegarde. Vous allez me dire, pourquoi c’est mon serveur qui se connecte au serveur Oversimple ? Tout simplement car je considère que mon serveur est « fiable » contrairement à un serveur mutualisé d’OVH.
Script PHP sur serveur OVH.
<?php #php doit être supérieur à 5.1 $user="login"; $password="mot de passe"; $nom_de_la_base="baseName"; $serveur_sql="le serveur"; #Recupération de la date du jour : JJ-MM-AAAA $dateArchive = date("d-m-Y"); #Sauvegarde de la base -> sortie vers un fichier sql -> overSimple-DD-MM-YYYY.sql system("mysqldump --host=$serveur_sql --user=$user --password=$password $nom_de_la_base > overSimple-$dateArchive.sql"); #Récupération de la date a moins 28 jours afin de viser une ancienne archive $newDate = strtotime('-28 day', strtotime ($dateArchive) ); $newDate = date('d-m-Y', $newDate); #Verification si l'archive existe, on la supprime afin de ne pas en avoir de trop if(file_exists("overSimple-$newDate.sql")){ unlink("overSimple-$newDate.sql"); } ?> |
Script Shell sur mon serveur personnel
#!/bin/sh HOST='le ftp' PORT='21' USER='le login' PASSWORD='un mot de passe ;)' DATE=`date +%d-%m-%Y` NAME_FILE=overSimple-$DATE.sql #On va dans le repertoire de sauvegarde cd `dirname $0` ftp -n $HOST $PORT <<END quote USER $USER quote PASS $PASSWORD cd sauvegarde/ get $NAME_FILE quit END #On vérifie si on a télècharger le fichier. if [ ! -f $NAME_FILE ] then echo "Le fichier n'existe pas !, on le reprogramme pour dans 2 heures" echo sh $0 | at now + 2 hours fi exit |
On plannifie l’execute sur OVH
Tous les lundis à 1h du matin. (Hébergement -> Planificateur de tâches)
On planifie sur le serveur
Pour cela rien de bien compliqué, une petite tache cron chaque lundi à 2h du matin (on a de la marge) :
$ crontab -e 00 02 * * 1 /home/overSimple/sauvegarde/sauvegarde.sh On quitte (:wq) et on obtient : crontab: installing new crontab |
Et voilà, on obtient une petite sauvegarde hebdomadaire !