Backup MySql direct in DropBox

iNoob | Stefanescu Mihai | 2020-10-11

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…)


Imi place ce faci aici
Daca iti place ce fac aici imi poti cumpara o cafea Buy Me a Coffee at ko-fi.com

Stefanescu Mihai
Programator de ~8 ani, am lucrat la proiecte din mai multe industrstrii, de la eCommerce la telecomunicatii la automatizari. In acest timp am folosi diferite tehnologii, de la PHP, MySQL, PostgreSql, RabbitMq, Redis, Memcached si altele.
       

Get in touch
Pentru nelamuriri, dubii, comentarii si chestii de pe suflet ne putem auzi pe Discord, Reddit sau poti deschide o discutie noua pe forum.

Posteaza un comentariu

Comentarii

Inca nu au fost postate comentarii, fii primul care posteaza un comentariu!

Club-ul este dedicat membrilor si ofera access la mai multe zone ale website-ului.

🗝ïļ Login 🌟 Register

🔖 Bookmarks ⊞
âœĻ Pentru a sustine aceasta comunitate am sa te rog sa te autentifici sau sa te inregistrezi!

🌊ïļ Discord ⊞

Folosim cookie-uri pentru a oferi functionalitatile critice ale aplicatiei Invata-Programare. Folosim cookie-uri si pentru a analiza traficul, pentru care e nevoie de consimtamantul dvs. explicit.

⮆ïļ