Backup MySql direct in DropBox

postat acum 3 ani de Stefanescu Mihai in categorie iNoob

Am citit zilele trecute un articol despre cum poti folosi ‘mysqldump’ si un script PHP pentru a crea un backup bazei de date. Aceasta solutie se foloseste de pachetul Mail PEAR pentru a trimite baza de date la o adresa de e-mail specificata.Cum eu folosesc MySql zilnic, aproape in toate proiectele mele m-am gandit ca ar fi mult mai bine sa fac backup-ul direct pe Dropbox decat sa trimit pe cine stie ce adresa de e-mail.

O prima cautare pe Google m-a trimis catre DropboxUploader, de pe Github. Am descarcat fisierele si cu doar cateva modificari am reusit sa fac urmatorul script ce face un fisier SQL de backup (al bazei de date specificate), il face GZippped si il copiaza intr-un anumit folder dintr-un cont de Dropbox specificat.

<?php
require('DropboxUploader.php');

$tmpDir = "/tmp/";
// username-ul bazei de date MySql
$user = "username";
// parola bazei de date MySql
$password = "password";
// numele bazei de date MySql
$dbName = "my_database";
// hostname-ul sau IP-ul
$dbHost = "localhost";
// fisierul zip trimis va avea prefixul acesta
$prefix = "db_";

// username Dropbox
$dropbox_user = "dropbox_account";
// parola Dropbox
$dropbox_password = "dropbox_password";
// Folderul destinatie din dropbox (va fi creat daca nu exista)
$dropbox_dest = "db_backups";

// Crearea fisierului backup
$sqlFile = $tmpDir.$prefix.date('Y_m_d').".sql";
$backupFilename = $prefix.date('Y_m_d').".tgz";
$backupFile = $tmpDir.$backupFilename;

$createBackup = "mysqldump -h ".$dbHost." -u ".$user." --password='".$password."' ".$dbName." > ".$sqlFile;
//echo $createBackup;
$createZip = "tar cvzf $backupFile $sqlFile";
//echo $createZip;
exec($createBackup);
exec($createZip);

try {
    // upload fisier pe dropbox
    $uploader = new DropboxUploader($dropbox_user, $dropbox_password);
    $uploader->upload($backupFile, $dropbox_dest,  $backupFilename);
} catch(Exception $e) {
    die($e->getMessage());
}

// Stergere fisier temporar
unlink($sqlFile);
unlink($backupFile);

?>

Fisierul DropboxUploader.php poate fi descarcat de aici.

Puteti uploada acest script pe serverul web dorit si puteti seta un CronJob pentru a-l programa sa ruleze cand doriti (de exemplu zilnic sau saptamanal…)

Sunt un tanar programator din Bucuresti ce lucreaza in PHP/Mysql (MySqli/PDO), Laravel, CodeIgniter, MySQL, PostgreSQL, Wordpress, HTML5/CSS3, Sass, Photoshop si multe altele.
Google+ Community Facebook Group
Acest articol a fost mutat de pe vechea platforma.
Pentru orice eroare aparuta la mutare va rog sa ma contactati!