Backup di un database MySql

Postato da dillatutta il 26 gennaio 2012
Tecnologia e Web / Nessun Commento

Circa un anno fa dovetti creare un sistema di salvataggio di un database MySql, un sistema automatico che giornalmente mi effettuasse il backup del DB.
Creato il sistema, collaudato, ho deciso di condividerlo sul forum di html.it

Siccome non tutti leggono quel forum, vediamo di condividere il sistema anche qui sul blog.

Anzittuto va creata una tabella nel database ed inserito un record:

CREATE TABLE 'backup' ('data_backup' datetime default '0000-00-00 00:00:00')
ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO `backup` VALUES ('2012-01-26 00:00:00');

Fatto questo, passiamo a creare la pagina che si occupa di effettuare il backup, pagina che chiameremo backup.php

<?php
$db_name = "nome_del_db";                // nome del database
$db_user = "username_db";                // utente database
$db_psw = "password_db";                 // password utente database
$to = "<a href="mailto:pippo@miosito.it">pippo@miosito.it</a>";                // indirizzo email a cui viene spedito il backup
$from = "<a href="mailto:do-not-reply@miosito.it">do-not-reply@miosito.it</a>";       // 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';
   //invia il backup tramite email
   $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 . ".<br /><br />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);
//recupera nome e data files backup
$_dir = $_SERVER["DOCUMENT_ROOT"] . "/backup_files/";
$_files = array();

if(is_dir($_dir)){
   if($_dh = opendir($_dir)) {
      while(false !== ($_file = readdir($_dh))){
         if($_file != '.' && $_file != '..'){
            $_files[] = array('data' => filemtime($_dir. "/" . $_file), 'file' => $_file);
         }
      }
      closedir($_dh);
      rsort($_files);
   }
}

##MANUTENZIONE FILES DI BACKUP##

$max_files = 3;  //numero files di backup da mantenere costanti sul server
$tot_files = count($_files);

if($tot_files > $max_files){
   // i files sul server sono maggiori di quelli consentiti
   for($i = $max_files; $i <= $tot_files-1; $i++){
      unlink($_dir . $_files[$i]["file"]);
   }
}
?>

Cosa fa il codice sopra?

  1. si connette al database;
  2. verifica se il backup è già stato effettuato nella giornata odierna;
  3. se non trova riscontro, effettua il backup e lo salva nella cartella;
  4. invia il backup tramite email;
  5. aggiorna la data di backup nel database;
  6. crea un array dei files di backup presenti sul server;
  7. rimuove il numero di files eccedenti quello impostato, partendo dai più vecchi

Per l’invio del backup tramite email viene usata la classe PHPMailer

E’ possibile eseguire il file appena creato, o ”manualmente”, vale a dire includendolo in una pagina, oppure tramite un comando di cron jobs (in questo caso è superfluo l’uso del controllo a database, rimovibile).

File Sharing addio?

Postato da dillatutta il 23 gennaio 2012
Tecnologia e Web / Nessun Commento

Dopo l’azione dell’FBI che ha colpito il popolare sito di file sharing Megaupload, analoghi servizi come Filesonic e Fileserve hanno spontaneamente deciso di sospendere l’analogo servizio.
Per ora i files caricati sui sistemi sono “usabili” solo da chi li ha caricati, infatti la condivisione risulta sospesa.

E’ giunto il momento per chi non accetta di mettere mano al portafogli, di cercare un’altra soluzione. Ho il sospetto che la guerra (tra major americane e utenti) non finisce qui…

Liberalizzazioni: il debito pubblico pagato con i titoli di Stato

Postato da dillatutta il 20 gennaio 2012
Economia / Nessun Commento

Tra le altre cose, nella bozza sul Decreto sulle liberalizzazioni, pare che si voglia sbrogliare il discorso del debito delle PA verso i fornitori, che ammonterebbe a circa 70 miliardi di euro (euro più euro meno…).

Si legge che “ i debiti delle amministrazioni pubbliche devono essere pagati con titoli di Stato“.

E fin qui il tutto sembra cosa bella e gradita.
Ma se analizziamo quanto sopra, si scopre che lo stato sta cercando di azzerare il suo debito con le aziende semplicemente girando sulle stesse una quota del debito stesso (in pratica le aziende acquistano i titoli di stato, finanziando il debito pubblico).
I titoli di stato, che ancora non è dato sapere quali saranno, hanno una scadenza (BOT 3, 6 e 12 mesi, BTP 3, 5, 10, 15 e 30 anni), vale a dire che l’azienda che vanta un credito dalla PA, per incassare di fatto tale credito, deve ulteriormente attendere la scadenza del titolo di stato.

Chiuso Megaupload

Postato da dillatutta il 20 gennaio 2012
Tecnologia e Web / 3 Commenti

Bye Bye Megaupload.
La giustizia americana ha deciso di chiudere per sempre il noto sistema di file sharing, colpevole di violare la legge sul copyright. Perchè? Semplicemente perchè sui suoi server gli utenti salvano (salvavano!) materiale coperto dal copyright, come film e musica.

Da qui l’accanimento dell’industria dell’entertainment americana e le enormi pressioni sul governo USA, hanno messo la parola fine al sistema.
Ma Megaupload non è il solo: prima di lui nacque Rapidshare, inizialmente in due versioni, .de e .com; poi venne Hotfile. Infine, per citarne qualcuno, son nati Filesonic e Fileserve

Ma la motivazione (violare il diritto di copyright) è di fatto attendibile e giusta? Diciamo che è opinabile, in quanto non è il sistema stesso, per mezzo dei sui addetti, a caricare il materile off-limits, bensì gli utenti iscritti al servizio, rei questi ultimi sì di pubblicare materiale coperto da diritti d’autore.

Qualcuno potrebbe insinuare che quanto detto sopra è vero, però solo grazie a Megaupload questo scambio illegale è possibile, quindi chiuso il servizio, fine dello scambio.
A questo punto allora puniamo e chiudiamo anche l’azienda che fornisce ad esempio un servizio di telefonia cellulare, perchè grazie a quel servizio innumerevoli malviventi, terroristi e chi più ne ha più ne metta, comunicano tra loro scambiandosi (questa volta sì) info esplosive.

Infine, pare buffo che il boss di Megaupload, arrestato in Nuova Zelanda, sia di fatto un discografico rap, marito di Alicia Keys

Schettino vigliacco? No, irresponsabile

Postato da dillatutta il 18 gennaio 2012
Cronaca / 2 Commenti

Chi sia il tizio della foto è noto purtroppo a tutti. Cosa abbia combinato è altresì noto.

Ma l’opinione pubblica cosa ne pensa?
Qui si nota un controsenso: la maggior parte della gente si scaglia contro la decisione del comandante di “darsela a gambe” prima che tutti i passeggeri avessero lasciato la nave - contravvenendo all’usanza (o regola ben precisa?) che “il comandante deve esserre l’ultimo a lasciare la nave” -, anzichè condannarlo in forma assoluta per aver effettuato una manovra pericolosa per onorare un’antica (quanto evidentemente stupida) tradizione dell’inchino ed aver di fatto causato la tragedia.

Mi chiedo, se il comandante qui sopra anzichè abbandonare la nave anzitempo, avesse ottemperato ai suoi obblighi e fosse sceso come ultimo passeggero, ora come lo si giudicherebbe? Temo quasi un eroe… per aver salvato tante vite, che però lui stesso ha messo in pericolo…

Tags: ,

Nuovo blog, stesse cose

Postato da dillatutta il 17 gennaio 2012
Generale / Nessun Commento

4 anni son passati da quando ho aperto dillatutta.com
Attualmente conta 448 posts, suddivisi pressochè tutti tra il 2008 e il 2009.
Negli ultimi due anni infatti l’attività si è quasi del tutto interrotta, colpa del poco tempo disponibile e delle mutate abitudini “social”, ora dirette verso i blasonati Facebook e Twitter.

Ma spesso la voglia di scrivere cosa mi passa per la testa ritorna ed ecco che metto mano al blog.
Ma dopo anni è venuto il momento di cambiare, non la natura dei posts, bensì l’aspetto grafico nonchè la piattaforma.

Eccoci quindi qui con una nuova veste grafica, sobria, minimal, “chiccosa” se vogliamo.

Oltre alla veste grafica è cambiato anche il link, nonostante il vecchio dillatutta.COM sia ancora vivo, l’attività di blog prosegue ora su dillatutta.IT

See ya

Tags: