SAUVEGARDE AUTOMATISÉE DE VOS BASES DE DONNÉES

Signaler
Messages postés
488
Date d'inscription
samedi 5 avril 2003
Statut
Membre
Dernière intervention
31 mars 2009
-
Messages postés
1
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
25 novembre 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/45266-sauvegarde-automatisee-de-vos-bases-de-donnees

Messages postés
1
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
25 novembre 2010

Salut, je reçois le zip vide, et même sur le serveur ftp le zip est vide, quelqu'un aurait une idée ?
Messages postés
2
Date d'inscription
vendredi 29 janvier 2010
Statut
Membre
Dernière intervention
9 février 2010

Bonjour, je fais suite à mon post précédent : J'ai résolu le pb en renseignant les chemins complets dans le script
par exemple :

// test d'écriture (ne devrait en principe pas échouer)
if (!$handle = fopen('/media/portail/_Backups/sql/'.$filename, 'w'))

Car en fouinant sur le net j'ai vu qu'il est préférable de faire ça quand on lance un script par cron... Ca peut peut-être servir à quelqu'un... En tout cas pour moi ça a fonctionné (et ça fonctionne toujours d'ailleurs ;-) ).

Autre question : Est-ce que quelqu'un a testé une restauration d'une base sauvegardée par ce script? Avec quelle méthode?
Moi j'ai essayé un import via phpmyadmin, et ça plante : Ca crée bien la bdd et c'est tout. Le message d'erreur indique qu'aucune base n'est sélectionnée. J'ai donc rajouter une ligne dans la partie "en-tête du fichier d'export pour la base en cours" tel que suis :

// en-tête du fichier d'export pour la base en cours
$sql_header = '###############################################'."\n";
$sql_header .= '## BASE DE '.($row->Database)."\n";
$sql_header .= '###############################################'."\n\n";
$sql_header .= $s->{'Create Database'}.";\n\n";
$sql_header .= 'USE '.$row->Database.";\n\n";

J'ai donc rajouté la dernière ligne afin de faire une sélection de base lors de la restauration. J'ai testé ensuite et ça fonctionne avec phpmyadmin... (Toujours au cas où quelqu'un rencontre ce même pb).

Voili voilou. Si quelqu'un a des commentaires, des conseils, ou une autre solution, je suis preneur.

Bonne continuation!
$teph
Messages postés
2
Date d'inscription
vendredi 29 janvier 2010
Statut
Membre
Dernière intervention
9 février 2010

Salut, et avant toutes choses : Un grand bravo pour ton précieux code!

Je précise d'entrée que je suis novice en PHP et en linux (ce qui a son importance pour la suite).
J'ai donc adapté ton code à mes besoins : Nickel
Quand j'appel le fichier php via un browser : Nickel
Quand j'execute le fichier ./monfichier.php que j'ai d'abord rendu executable : Nickel
Quand je veux le lancer à partir du crontab : il plante à l'étape de vérification de la disponibilité en écriture de /sql (je reçois donc un mail avec l'erreur indiquée).
Quand je regarde le mail reçu du cron (j'ai masqué quelques infos par des ##):
=======================================================================
Date: Fri, 29 Jan 2010 14:44:01 +0100
Message-Id: <201001291344.o0TDi18g001560@######.#######.####>
From: root@######.#######.#### (Cron Daemon)
To: root@######.#######.####
Subject: Cron <root@######> php /media/portail/_Backups/backupMYSQL.php
Content-Type: text/plain; charset=UTF-8
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env:
X-Cron-Env: <LOGNAME=root>

Impossible d'ouvrir un ficher en écriture dans le répertoire "sql/"
Fin de la sauvegarde....
======================================================================
j'ai pourtant bien passé le dossier sql/ en chmod 1777 (avec le stickybit donc)
Je suis sous ubuntu 8.04 server. J'ai testé avec le crontab de l'utilisateur, et même du root et même pb.
J'ai créé un petit script qui ne fait que créer un repertoire test dans le dossier sql/ > Exactement pareil (ok via browser ou en ./test.php mais pas via crontab)

Voici quelques précisions :
---contenu du test.php :

#!/usr/bin/php
<?php
mkdir ("media/portail/_Backups/sql/test", 0777);
?>

---lancement du crontab :
$ sudo crontab -e

---ligne ajoutée au crontab (lancement toutes les minutes pour le test) :
*/1 * * * * php /media/portail/_Backups/backupMYSQL.php

Voila, où j'en suis, et là... Je bloque complétement... J'ai l'impression d'avoir tout essayé. C'est comme si le crontab n'avait pas le droit de créer des dossiers...
Est-ce que quelqu'un a une idée svp?
Merci d'avance

$teph
Messages postés
7
Date d'inscription
mardi 17 juin 2008
Statut
Membre
Dernière intervention
16 octobre 2009

Salut,

J'essaye en vain de faire marcher ta source chez OVH, j'ai du peut être louper quelques choses, car je mets le dossier / fichier en 777 (pour faire des essais), j'ai bien configurer les 3 petites lignes en bas de la source, puis quand je lance, bim Erreur 500 (d'entrée de jeux, donc c'est pas du à un time-out...

Aurais tu une idée de se qu'il faudrait que je modifie pour eviter cette erreur ?

A bientôt ^^
Afficher les 46 commentaires