slt,
c'est un script que j'utilise pour un vds, je l'associe avec une tâche cron et j'en protège l'accès avec un htaccess
Code :
<?php
function mysql_structure() {
$host = 'localhost';
$user = 'utilisateur;
$pass = 'motdepasse';
$base = 'basesql_';
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);
}
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);
}
}
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'];
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);
?>
script compatible php4/5. Il permet une sauvegarde sur 7 jours comme sur power-heberg. après faut l'adapter pour l'envoi d'un email. Si ça peut t'aider...
