In questo tutorial presenteremo uno script che permette di eseguire giornalmente il backup di un database MySQL; l'applicazione non fà altro che connettersi al DBMS, copiare il database interessato dall'operazione, creare il file ".sql" contenente il salvataggio e datarlo al giorno del backup.
Inoltre, verrà mandata al proprietario del sito internet una mail contenente tutte le informazioni riguardanti il completamento del salvataggio: esito dell'esesecuzione, percorso in cui è stato salvato il file ".sql", tempo di esecuzione etc.
Di seguito riportiamo il codice del nostro scriptino:
<?php
$email = "tuamail@tuosito.it";
$host="localhost";
$user="utente";
$password="password";
$database="archivio";
$bk = "/percorso/backup" . date("d") . ".sql";
if ( file_exists($bk) ) unlink($bk);
system(
"mysqldump --user=$user --password=$password --host=$host $database > $bk",$res
);
$dimensione = filesize($bk);
switch ($dimensione) {
case ($dimensione>=1048576):
$dimensione = round($dimensione/1048576) . " MB"; break;
case ($dimensione>=1024):
$dimensione = round($dimensione/1024) . " KB";
break;
default: $dimensione = $dimensione . " bytes"; break;
}
$testo = "Backup per il database " . $database . " eseguito.\n\n";
$testo .= "Sql: " . $res . "\n\n";
$testo .= "Percorso: " . $bk . "\n\n";
$testo .= "Dimensione: " . $dimensione . "\n\n";
$testo .= "Tempo di esecuzione: " . date(" F d h:ia") . "\n\n";
mail($email, "Database Backup" , $testo, "From: Website <>");
?>
L'applicazione si basa su un commando CLI (command line interface), system(),che permette di eseguire istruzioni da linea di comeando tramite codice come se fossero laciate da Shell:
system(
"mysqldump --user=$user --password=$password --host=$host $database > $bk",$res
); |