(Sauvegarde Auto) Fichiers FTP et SQL
Résolu
axel50397
Messages postés
113
Date d'inscription
Statut
Membre
Dernière intervention
-
axel50397 Messages postés 113 Date d'inscription Statut Membre Dernière intervention -
axel50397 Messages postés 113 Date d'inscription Statut Membre Dernière intervention -
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 !
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:
- (Sauvegarde Auto) Fichiers FTP et SQL
- Logiciel de sauvegarde gratuit - Guide
- Sauvegarde android - Guide
- Renommer des fichiers en masse - Guide
- Fichiers epub - Guide
- Wetransfer gratuit fichiers lourd - Guide