(Sauvegarde Auto) Fichiers FTP et SQL

Résolu/Fermé
axel50397 Messages postés 113 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 17 mars 2014 - 28 août 2007 à 15:08
axel50397 Messages postés 113 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 17 mars 2014 - 30 août 2007 à 17:49
Bonjour à tous !

J'ai fais des recherches sur internet, et je suis arrivé sur un site qui s'appelle Webcron et qui à le même effet qu'un cron en local sur une page web sur le net...
Il me suffit donc d'indiquer au site de visiter un page qui sauvegardera automatiquement ma base de donnée, le problème, c'est que j'aimerais que la page en question m'envoie la sauvegarde par mail à chaque fois, est-ce possible? Car en cas de Crash, ou de Defacing, les fichiers sur le FTP seront quand même effacés, ce qui incluera les sauvegardes :/

D'ailleurs, j'ai une 2e requète, j'aimerais faire pareil pour les fichiers du FTP, mais si possible, une page qui compresse le tout que je téléchargerais manuellement (47 Mo environ)... De cette manière, chaque semaine un fichier compréssé est crée contenant les fichiers du FTP ainsi qu'une sauvegarde de la base de donnée, pratique en cas de visite d'un Lamerz -_-'

Merci beaucoup, le plus important est l'envoie de la base de donnée par mail, je vous envoie le script que j'ai déjà, si vous pouvez apporter des modifs, ou me dire quoi faire...

(Code)
<?php
// création d'une fonction comportant les identifiants de connexion au FTP :


function mysql_structure() {
$host = 'localhost';
$user = 'user';
$pass = 'pass';
$base = 'base';

// création d'un fichier affichant en boucle le contenu des tuples de la base :

mysql_connect($host, $user, $pass);
mysql_select_db($base);
$tables = mysql_list_tables($base);
while ($donnees = mysql_fetch_array($tables))
{
$table = $donnees[0];
$res = mysql_query("SHOW CREATE TABLE $table");
if ($res)
{
$insertions = "";
$tableau = mysql_fetch_array($res);
$tableau[1] .= ";";
$dumpsql[] = str_replace("\n", "", $tableau[1]);
$req_table = mysql_query("SELECT * FROM $table");
$nbr_champs = mysql_num_fields($req_table);
while ($ligne = mysql_fetch_array($req_table))
{
$insertions .= "INSERT INTO $table VALUES(";
for ($i=0; $i<=$nbr_champs-1; $i++)
{
$insertions .= "'" . mysql_real_escape_string($ligne[$i]) . "', ";
}
$insertions = substr($insertions, 0, -2);
$insertions .= ");\n";
}
if ($insertions != "")
{
$dumpsql[] = $insertions;
}
}
}
return implode("\r", $dumpsql);
}


// creation d'une fonction file_put_content si le script est en PHP4 :

if(!function_exists('file_put_contents')) {
function file_put_contents($filename, $data, $file_append = false) {
$fp = fopen($filename, (!$file_append ? 'w+' : 'a+'));
if(!$fp) {
trigger_error('file_put_contents ne peut pas écrire dans le fichier.', E_USER_ERROR);
return;
}
fputs($fp, $data);
fclose($fp);
}
}


// création du fichier de dump sur le même niveau que ce fichier dump.php

file_put_contents("sqldump_".date("d-n-Y").".sql", mysql_structure());

// effacement du fichier precedant (créé 7 jours plus tot)
$time_old = getdate(mktime()-(7*24*3600));
$an = $time_old['year'];
$mois = $time_old['mon'];
$jour = $time_old['mday'];


// formatage des jours à 1 chiffre

for($k=1; $k<10; $k++)
{
if ($jour==$k)
{
$jour='0'.$jour;
}
}

$date_old=$jour.'-'.$mois.'-'.$an;
$file_old="sqldump_".$date_old.".sql";
unlink($file_old);
?>(/code)

Encore merci, et à plus tard !
A voir également:

2 réponses

axel50397 Messages postés 113 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 17 mars 2014 16
30 août 2007 à 17:08
Up Please...

S'il vous plait, j'ai envoyé le script sur PasteBin pour permettre une résolution et une lecture plus pratique...

http://pastebin.ca/675847

Merci beaucoup pour votre aide, et à bientot
0
axel50397 Messages postés 113 Date d'inscription mercredi 8 août 2007 Statut Membre Dernière intervention 17 mars 2014 16
30 août 2007 à 17:49
Il n'y a pas eu de réponse, j'ai juste réecris le sujet en modifiant le titre et en espérant que celui ci sera effacé...
0