Destination de sauvegarde avec un mysqldump()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Destination de sauvegarde avec un mysqldump()

Re: Destination de sauvegarde avec un mysqldump()

par AB » 04 sept. 2009, 18:07

Si ton répertoire de sauvegarde se nomme 'BDD' et qu'il est situé à la racine de ton site et si ce script est également situé à la racine de ton site :
$host = "dbxxx.1and1.fr";
$user = "dboxxxxxx";
$pass = "xxxxxx"; // On définit les infos de la base de données
$db = "xxxxxx";
$date = date("d-m-Y"); 

$repertoire_de_sauvegarde = 'BDD';

$backup = "cooldone_bdd-backup_".$date.".sql.gz";

$dirfile = $repertoire_de_sauvegarde.'/'.$backup;

$command = "mysqldump -h$host -u$user -p$pass $db | gzip> $backup";
system($command);

file_put_contents("$dirfile",$backup);

Re: Destination de sauvegarde avec un mysqldump()

par thehawk » 04 sept. 2009, 17:39

Donc voici ton code :
$host = "dbxxx.1and1.fr";
$user = "dboxxxxxx";
$pass = "xxxxxx"; // On définit les infos de la base de données
$db = "xxxxxx";
$date = date("d-m-Y"); // On définit le variable $date ( ici son format )

$backup = "cooldone_bdd-backup_".$date.".sql.gz";
// Utilise les fonctions système : MySQLdump & GZIP pour générer un backup gzipé
$command = "mysqldump -h$host -u$user -p$pass $db | gzip> $backup";
system($command);
// Démarre la procédure de téléchargement
 // [1]
$taille = filesize($backup);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/gzip");
header("Content-Disposition: attachment; filename=$backup;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$taille);
@readfile($backup);
// Supprime le fichier temporaire du serveur
unlink($backup);
il faut changer ton code à partir de [1]
rappel des variables : $backup => contient ton dump
donc on l'injecte directement :
if (file_put_contents  ( 'lefichieraveclabonnextension' , $backup) !== FALSE)
{
 echo 'Sauvegarde ok';
}
else
{ 
 echo 'sauvegarde failed'
}
Code fait de tête ;)
Bye hawk


Edit :
En réfléchissant plus de 30 secondes cela ne sert a rien ce que je t'ai indiqué...
regarde plutôt du cotés de :
rename( $backup , 'jesuislebonfichier/a/la/bonneadresse.tar.gz' );

Re: Destination de sauvegarde avec un mysqldump()

par jay64 » 04 sept. 2009, 16:47

Merci mais je ne vois pas trop comment adapter mon code pour l'intégrer.
Un coup de pouce supplémentaire ?

Merci

Re: Destination de sauvegarde avec un mysqldump()

par thehawk » 04 sept. 2009, 14:28

Regarde du coté de file_put_contents()
Bye Hawk

Destination de sauvegarde avec un mysqldump()

par jay64 » 04 sept. 2009, 13:40

Bonjour,

Actuellement, je lance manuellement un script pour sauvegarder ma BDD. Il m'est demandé l'emplacement en local où sauvegarder et ça marche très bien. le code actuel est le suivant:
$host = "dbxxx.1and1.fr"; 
$user = "dboxxxxxx";
$pass = "xxxxxx"; // On définit les infos de la base de données
$db = "xxxxxx";
$date = date("d-m-Y"); // On définit le variable $date ( ici son format )

$backup = "cooldone_bdd-backup_".$date.".sql.gz";
// Utilise les fonctions système : MySQLdump & GZIP pour générer un backup gzipé
$command = "mysqldump -h$host -u$user -p$pass $db | gzip> $backup";
system($command);
// Démarre la procédure de téléchargement
$taille = filesize($backup);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/gzip");
header("Content-Disposition: attachment; filename=$backup;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".$taille);
@readfile($backup);
// Supprime le fichier temporaire du serveur
unlink($backup);
Je cherche maintenant à sauvegarder directement sur un dossier de mon espace d'hébergement, et d'automatiser l'exécution de ce script à l'aide d'une tache cron. Mon soucis est que je ne sais pas comment modifier le script pour ne plus sauvegarder en local mais lui indiquer en dur l'emplacement de la sauvegarde.

Pourriez-vous m'aider ?

merci !