E se volessimo effettuare il backup solo una volta al giorno, "lanciando" lo script accedendo ad una pagina?
Creiamo una nuova tabella nel db, che chiameremo backup:
codice:
CREATE TABLE 'backup' (                 
          'data_backup' datetime default '0000-00-00 00:00:00'   
        ) ENGINE=MyISAM DEFAULT CHARSET=latin1
Modifichiamo il nostro script come segue:
Codice PHP:
$db_name "nome_del_db";                // nome del database
$db_user "username_db";                // utente database
$db_psw "password_db";                                  // password utente database
$to "pippo@miosito.it";        // indirizzo email a cui viene spedito il backup
$from "do-not-reply@miosito.it";        // indirizzo email dal quale parte il backup

$dbhost "localhost";                      // indirizzo database

#crea connessione al db
$conn mysql_connect($dbhost$db_user$db_psw);
    if (!
$conn){
      die(
"Errore: " mysql_error());
  }
        
mysql_select_db($db_name$conn);

#verifica se il backup è già stato effettuato nella giornata di oggi

$get_data "SELECT data_backup FROM backup WHERE data_backup = '" date("Y-m-d") . "'";

$result mysql_query($get_data$conn);

if(
mysql_num_rows($result) == 0){        // la data di backup non è uguale a quella corrente

    #effettua il backup 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_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_files/" $backupFile);
  
$mail->Send();
    
    
    
#aggiorna la data di backup
    
$update "UPDATE backup SET data_backup = '" date("Y-m-d") . "'";
  
mysql_query($update$conn);

}

mysql_close($conn); 
Basta includere questo script in una pagina php (possibilmente ad inizio pagina) affinchè all'accesso di quella pagina, venga effettuato il backup del database (se l'ultima data di backup è diversa da quella attuale).