// -----------
// Préparation
// -----------
// On définit les dossiers par défaut
$rootFolder = "/";
$archivesFolder = $rootFolder."_archives/";
// On définit où seront les fichiers archivés (
$nameFilesBkp = $archivesFolder.date("D")."_files";
$nameBddBkp = $archivesFolder.date("D")."_bdd";
// Information de la base de donnée
$pdo_host = "votreserveurovh"; // Exemple : "mysql2-1.start"
$pdo_user = "votrenomdutilisateur";
$bdd_name = "votrebasededonnee"; // Chez OVH, c'est la même chose que $pdo_user
$pdo_pwd = "votremotdepasse";
// Si il n'existe pas, on créé le dossier d'archive
if(!file_exists($archivesFolder))
mkdir($archivesFolder, 0777, true);
// -----------------------------
// Archives de la base de donnée
// -----------------------------
// Extrait et compresse les données en une seule commande
system("mysqldump -h".$pdo_host." -u".$pdo_user." -p".$pdo_pwd." ".$bdd_name." | gzip> ".$nameBddBkp.".zip");
// ------------------------------------------------------------------
// Archives des fichiers
// (depuis http://www.ingeny.fr/php/compression-zip-recursive-en-php)
// ------------------------------------------------------------------
// Teste la version de PHP
if(substr(phpversion(), 0, 1) < 5)
exit("Vous devez utiliser PHP5 ou supérieur. Vous utilisez ".phpversion()."");
// Teste que le module php5-zip est chargé
if(false === extension_loaded('zip'))
exit("Le module PHP5 Zip n'est pas chargé");
// On créée un objet itérateur qui permettra de parser les fichiers récursivement
$iter = new RecursiveIteratorIterator(
new RecursiveDirectoryIterator(
ROOT_DIR ,RecursiveDirectoryIterator::KEY_AS_FILENAME
), RecursiveIteratorIterator::SELF_FIRST
);
// On instantie une ressource ZIP
$zip = new ZipArchive();
// On fait pointerla ressource au bon endroit
$fichier= $nameFilesBkp.".zip";
$res = $zip->open($fichier, ZipArchive::CREATE);
// Puis, dossier par dossier, on compresse les fichiers
foreach ($iter as $entry):
$filename = str_replace(ROOT_DIR, '', $entry);
if('/' === $filename{0})
$filename = substr($filename, 1);
$zip->addFile($entry, $filename);
endforeach;
$zip->close();
http://legissa.ovh/internet-sauvegarde-backup-restauration-web-sql.html