Tag Archive - SQL

GMail e WordPress: tenere al sicuro i nostri backup SQL

Allo stato attuale considero GMail uno tra “i posti più sicuri del web“, come avere un disco costantemente backuppato, in configurazione “millemila-raid” inesistente su qualsiasi altra piattaforma o provider di servizi web, inutile negarlo, Google in questi casi ci sa fare e ha le risorse adatte per svolgere dignitosamente il suo sporco lavoro.

Le storie di spionaggio industriale e di qualsiasi altra vaccata vi passi per la testa tenetele da parte: di password, nomi, cognomi, indirizzi e quanto altro ancora Google è già fornita proprio come dice giustamente Marco in un suo ottimo articolo.

Andiamo quindi al dunque: non so quanti blog voi gestiate (in generale questo mio ragionamento potrebbe applicarsi anche con un solo blog volendo, magari cambiando qua e la qualcosa) ma la necessità di tenere un backup del MySQL è oggigiorno cosa comune per tanti scrittori improvvisati che gestiscono tutto in autonomia tanto quanto “semplici guru” che mantengono in vita (ed aggiornano) decine di siti web che si basano su WordPress come motore principale (ogni riferimento al Beggi è puramente voluto).

Il plugin forse più utilizzato e conosciuto? WP-DB-Backup di Austin Matzko: facile da configurare, facile da installare, impeccabile nel suo funzionamento. Cosa c’entra Google / GMail con tutto questo? E’ presto detto. Il plugin citato offre la possibilità di inviare via posta elettronica i backup del proprio database MySQL. Ricevere quotidianamente (o settimanalmente) questi file all’interno della propria casella di posta potrebbe alla lunga farci perdere tempo, vuoi per la cancellazione periodica dei file più vecchi, vuoi perché si va a confondere con il resto della posta in ingresso. Come risolvere il fastidioso problema?

Creare un secondo account @gmail.com

Una soluzione che porterà via giusto un paio di minuti ma che vi darà in cambio 7 e più GB di spazio sfruttabile per tenere da parte i backup che invieremo da quel giorno in poi. L’indirizzo dovreste conoscerlo già ma ve lo propongo ugualmente:

mail.google.com/mail/signup

Compilate, proseguite, accedete, non c’è molto da dire in merito ;)

Configurare WP-DB-Backup

Nelle impostazioni di WP-DB-Backup dovrete chiaramente sostituire l’indirizzo di posta di destinazione con quello appena creato. Tutto il resto rimane configurato esattamente come prima.

Addestrare” il nuovo indirizzo di posta

Un consiglio? Apprendo da Lifehacker (non riesco a trovare il post, mi dispiace! :() uno strano quanto funzionale metodo per pulire in automatico i vecchi backup, la cartella di SPAM! Idea sicuramente stramba ma tutto sommato perfetta per il nostro caso.

Il trucco sta nello spostare i file di backup nella cartella Spam (appunto) affinché GMail li consideri tali ogni volta successiva. Mi è bastato lasciar arrivare un pò di mail automatiche nella Inbox e far passare qualche giorno, fare poi una selezione di massa e spostare il tutto nel “marcio“, il gioco è fatto.

Il risultato -allo stato attuale- è un sistema di conservazione database passato da una schedulazione settimanale a quotidiana (almeno per i siti web più importanti), che tiene pulito autonomamente se stesso ogni mese cestinando le vecchie versioni man mano che diventano inutili, in grado di permettermi il recupero di -scusate la ripetizione- versioni risalenti a 30 giorni fa, gratuito e funzionale, particolare da non sottovalutare mai.

Finezze: filtri contro mail non desiderate

Se il secondo account è stato creato appositamente per tenere “in canna” i soli backup dei database non c’è motivo che arrivi posta elettronica di altro tipo. Questo è un ottimo motivo per filtrare il tutto alla base e togliere di mezzo potenziali seccature che potrebbero andare a infilarsi dove non vogliamo.

Le mail inviate da WP-DB-Backup contengono una parola difficilmente inserita in mail di spam (almeno da quanto appreso fino ad ora, magari in futuro cambierà): “Backup“. Filtrando tutto ciò che non contiene la “parola magica” (o mettendo degli AND / OR per affinare ancora di più la ricerca) si risolve il problema ancora prima che questo si presenti:

cliccare sulle immagini per ingrandirle

Nelle immagini si nota uno “strano indirizzamento” verso l’etichetta /test. Ho deciso di spostare tutto sotto una label giusto per testare il corretto comportamento della casella, a breve sparirà.

cliccare sulle immagini per ingrandirle

Potete fare lo stesso per stare sicuri che non succeda nulla di male ai DB! ;)

Altre applicazioni

Nonostante sia meno conosciuto segnalo ben volentieri il plugin “WordPress Backup” di Blog Traffic Exchange, disponibile anch’esso sull’extend di WordPress.org. Una volta installato e configurato anche nel suo caso sarà possibile specificare una casella di posta elettronica da usare per spedire i backup di plugin, temi e cartella upload … tutte e 3 facenti parte della wp-content, l’unica cartella che realmente cambia per ciascuna installazione di WordPress, personalizzata da chi possiede il blog.

La sostanza rimane la stessa di WP-DB-Backup e anche le mail inviate da questo plugin conterranno la parola “backup, non sarà quindi necessario creare ulteriori filtri :)

In conclusione

A me non resta che augurarvi buon backup ed invitarvi a proporre metodi alternativi altrettanto validi e sicuri, magari poco costosi o gratuiti come nel caso appena descritto.

Blog Traffic Exchange

Sophos: batch backup SQL

Un processo troppo spesso sottovalutato è quello del backup, talvolta anche in azienda (sigh!). La colpa viene sempre data al poco tempo a disposizione, alla poca voglia forse, sporadicamente del non sapere dove / come / quando fare un backup. Oggi ho notato che ho predicato bene ma ho razzolato male fino all’ultimo momento, il server antivirus aziendale non effettuava regolare backup SQL quotidianamente.

Per questo motivo ho deciso di rimediare e mettere in piedi un processo automatico che svolge lo sporco lavoro ogni notte, operazione schedulata alle 3.00 per l’esattezza.

Mi sono servito ancora una volta di uno script batch, il 7-Zip Command Line Version, l’eseguibile sleep presente nel Windows 2003 Server Resource Kit e di un secondo batch già presente in tutte le installazioni di Sophos (%programfiles%\Sophos\Enterprise Console\DB\BackupDB.bat).

Prima di partire vi invito a copiare il 7za.exe ed lo sleep.exe all’interno della cartella Windows\System32 della vostra macchina, così da poter essere richiamati facilmente dal prompt di MS-Dos.

Lo script è davvero semplice, può essere salvato in qualsiasi posizione. Nel mio caso ho deciso di lasciarlo in %programfiles%\Sophos.

Prima il codice, poi la spiegazione :-)


@echo off
cls
echo Backup Database SOPHOS su macchina locale
echo;
echo Controllo esistenza cartella bck su disco C ...
echo;
if not exist C:\bck mkdir C:\bck
cd "%programfiles%\Sophos\Enterprise Console\DB"
echo Avvio procedura di backup Database ...
echo Tempo di attesa: 20 sec.
for /f "tokens=1-3 delims=/- " %%a in ('date /t') do set xdate=%%a_%%b_%%c
start /min BackupDB.bat C:\bck\sophos_%xdate%.sql SOPHOS
sleep 20
echo;
echo Backup effettuato.
echo;
echo Compressione con 7zip ...
echo;
7za.exe a -t7z -mx5 C:\bck\sophos_%xdate%.7z C:\bck\sophos_%xdate%.sql
echo;
echo Cancellazione file temporanei ...
del C:\bck\sophos_%xdate%.sql
echo;
echo Processo terminato

La cartella usata per tenere in piedi i backup è la C:\bck, potete tranquillamente cambiarla sostituendola nello script. Sappiate comunque che il batch di Sophos gestisce meglio i nomi di cartelle senza spazi al loro interno, regolatevi di conseguenza ;)

Per differenziare le versioni dei backup ho deciso di includere la data. Il parametro funzionante sotto DOS è “%date%” che però restituisce un valore come questo qui di seguito:


C:\Documents and Settings\Giovanni>echo %date%
24/07/2009

C:\Documents and Settings\Giovanni>

motivo per il quale diventa necessario sostituire quegli slash con qualcosa di più compatibile. Il ciclo for inserito nello script permette di farlo inserendo gli underscore perfettamente compatibili con il batch di Sophos (e con il mio!), generando un nuovo valore %xdate% richiamabile in qualsiasi momento.

Lo sleep.exe viene richiamato nel frattempo che va in funzione lo “start BackupDB.bat” che si preoccupa di effettuare in una finestra minimizzata il file SQL di esportazione dall’Enterprise Console. 20 secondi bastano e avanzano per un file che racchiude informazioni per un totale di circa 200 macchine. Nel vostro caso potrebbe essere necessario aumentare il numero di secondi (dipende da quanto è grande l’esportazione).

Il funzionamento (molto elementare) del batch BackupDB realizzato da Sophos è spiegato nel /? lanciato da DOS, lo riporto:


C:\Program Files\Sophos\Enterprise Console\DB>BackupDB.bat

Usage:
 BackupDB backup_file_path [instance_name]

C:\Program Files\Sophos\Enterprise Console\DB>

altrimenti bisognerebbe far riferimento alla procedura manuale, spiegata in un documento della KB Sophos.com all’indirizzo:

sophos.com/support/knowledgebase/article/27265.html

Finito il backup si passa alla compressione grazie alla riga di comando del 7za precedentemente copiato nella Windows\System32. La riga che lancia la compressione del file SQL indica all’applicativo la necessità di generare un file 7z (-t7z) con compressione normale dandogli lo stesso nome del file originale. Per conoscere tutti i segreti della riga di comando di 7za vi rimando ad un fantastico documento, davvero completo:

http://dotnetperls.com/7-zip-examples

Il processo di compressione potrebbe anche impiegare diversi minuti (15 / 20 talvolta) ma schedulando questo lavoro a notte fonda non penso ci siano grossi problemi di sovraccarico della macchina, giusto? ;-)

Come chicca finale si cancella il file *.SQL recuperando spazio sul disco e mantenendo solo il .7z compresso.

Basterà ora aggiungere alle Operazioni Pianificate del sistema il lancio quotidiano (o settimanale se più vi aggrada) del batch, all’ora esatta desiderata.

Cheers.