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