Ciao a tutti.
Mi serviva un sistema che mi facesse il backup del database.
Inizialmente usavo uno script ben fatto (http://www.phpmybackuppro.net/), carino, pratico con diverse funzionalità. Peccato una volta raggiunto un db di dimensioni 6/8 Mb, il sistema smettesse di funzionare...
Quindi bisognava cercare un'altra soluzione: tramite mysqldump.
Creiamo una pagina backup.php come segue:
Codice PHP:
<?php
$db_name = "nome_del_db"; // nome del database
$db_user = "username"; // utente database
$db_psw = "password"; // password utente database
$to = "info@miosito.com"; // indirizzo email a cui viene spedito il backup
$from = "do-not-reply@miosito.com"; // indirizzo email dal quale parte il backup
$dbhost = "localhost"; // indirizzo del database
$backupFile = $db_name . "_" . date("d-m-Y_H-i-s") . '.gz';
$command = "mysqldump --opt -h " . $dbhost . " -u " . $db_user . " -p" . $db_psw . " " . $db_name . " | gzip > backup/dump_files/" . $backupFile . "";
system($command);
require_once 'class.mailer.php';
$mail = new PHPMailer(); //defaults to using php "mail()";
$mail->AddAddress($to, '');
$mail->SetFrom($from, '');
$mail->IsHTML(true);
$mail->Subject = "Backup DB: " . $backupFile;
$mail->Body = "In allegato il backup del database " . $db_name . ".
Email generata in automatico dal sistema, NON RISPONDERE A QUESTA EMAIL";
$mail->AddAttachment("backup/dump_files/" . $backupFile);
$mail->Send();
?>
Nella pagina viene incluso un file class.mailer.php, che altro non è se non il famoso PHPMailer (http://phpmailer.worxware.com/), che serve per spedire il backup via email.
Cosa fa lo script?
1. Crea un backup del database (usando le credenziali di accesso inserite), nominando il file con il nome del database stesso, aggiungendo data e ora;
2. Lo salva sul server nella cartella ove risiede il presente file (nell'esempio salva nella cartella backup/dump_files);
3. Spedisce una email all'indirizzo specificato contenente copia del file di backup.
Lo script può essere incluso in qualsiasi pagina e/o richiamato in base a determinati criteri.
Il modo più pratico e sicuro, è quello di far eseguire il file tramite un comando di cronjobs (per chi ha la possibilità di farlo), settandone la ricorrenza.
Lo script può essere implementato e migliorato a piacere, non c'è dubbio