Sauvegarde Base de données par cron

Nouveau WRInaute
Bonjour,


Je cherche à mettre en place une tâche planifiée permettant de sauvegarder ma base de données (environ 200 Mo) quotidiennement.
J'ai un hébergement mutualisé Pro 100 Go chez OVH.

Pour cela j'essaie de mettre en application ce guide OVH: http://guides.ovh.net/MutualiseCron

J'en suis à la première étape: Test du scrip php en mode shell.
Je compte faire ceci:

1) Je crée un script php Save_Base.php que j'uploade dans le dossier /home/vistaxp/www/forum/back sur le serveur.

Code:
#!/usr/local/bin/php

<?PHP

   $db_charset = "UTF8"; /* mettre utf8 ou latin1 */

   $db_server         = "xxxxxx";
   $db_name           = "xxxxxx";
   $db_username       = "xxxxxx";
   $db_password       = "xxxxxx";

// Sauvegarde :
// ------------

   $cmd_mysql = "mysqldump";

   $archive_GZIP      = "Sauve_Base.gz";

   echo " Sauvegarde de la base <font color=red><b>$db_name</b></font> par <b>mysqldump</b> dans le fichier <b>$archive_GZIP</b> <br> \n";
   $commande = $cmd_mysql." --host=$db_server --user=$db_username --password=$db_password -C -Q -e --default-character-set=$db_charset  $db_name    | gzip -c > $archive_GZIP ";
   $CR_exec = system($commande); 

?>


2) Dans Putty, je me connecte en rentrant mon identifiant et mon mot de passe FTP.

3) Toujours dans Putty, je rentre les commandes suivantes:

Code:
CD /home/vistaxp/www/forum/back
./Save_Base.php


Est ce que cette démarche est la bonne ?
Est ce que je vais bien retrouver la sauvegarde de la base dans le dossier /home/vistaxp/www/forum/back ?


Merci
 
WRInaute passionné
Normalement oui, mais je te conseille de donner une date à ta sauvegarde sinon elle sera remplacée chaque jour.
Tu as assez de Go pour voir venir.
 
WRInaute passionné
Vu que tu as un accès SSH, tu pourrais regarder du côté de le faire en SSH (plus performant qu'en .php).

teste si cette commande fonctionne
Code:
mysqldump --user=ton_user --password=ton_pass ta_base_de_donnes --opt > fichier.sql
Si ça marche, tu pourrais mettre ça dans un script bash.
 
Nouveau WRInaute
Je confirme, moi je fait un script bash celui la :

Code:
#!/bin/bash

DATE=`date +%u`
DIR='/home/backup'
HOST='xxx';
USER='xxx';
PASS='xxx';
BASE='xxx';

mysqldump -h $HOST -u $USER -p$PASS -r$DIR/backup_$DATE.sql $BASE
tar -cjvf $DIR/backup_$DATE.tar.bz2 $DIR/backup_$DATE.sql
rm $DIR/backup_$DATE.sql

appelé "backup_db.sh", puis dans le crontab (tous les jours à 2h) :

Code:
0 2 * * * root /home/script/backup_db.sh

C'est une version assez simple mais en général suffisante.


PS: le script nomme les backups avec le n° du jour dans la semaine pour garder 7 jours d'historique puis ils tournent pour ne pas occuper trop d'espace disque.
 
Discussions similaires
Haut