Andrea Beggi

La distanza più breve tra due punti non esiste.

Usare DreamHost come spazio di backup

A T T E N Z I O N E ! Questo post ha piu' di sei mesi. Le informazioni contenute potrebbero non essere aggiornate.

DreamHost è un hosting con diversi pregi, tra i quali lo spazio illimitato e l’accesso SSH. La tentazione di usarlo come spazio di backup via FTP è forte, malgrado sia vietato dai termini di servizio; io lo facevo e ho ricevuto una mail cortese ma ferma, che mi chiedeva di rimuovere i file di backup entro 24 ore. Nessun problema: ero in torto e ho provveduto a eliminare quanto richiesto.

La parte divertente è stata che proprio a causa di questa mail ho scoperto che tutti gli account DH comprendono 50GB di spazio da usare per i backup, sebbene con alcune limitazioni. Per attivare il servizio basta creare l’utenza apposita nel pannello di controllo, e ci viene dato lo spazio su un altro server. Le limitazioni riguardano i protocolli supportati per il trasferimento dei file e il tipo di accesso: si possono usare solo ftp, sftp, scp e rsync, inoltre non è supportata la schedulazione di processi tramite cron.

Quello che vi sto per dire è riferito a linux, su windows ci sono altri sistemi per fare le stesse cose. L’esempio trattato riguarda il backup di un blog, ma gli usi possibili sono diversi e la procedura va bene in ogni caso.

Facciamo un passo indietro e vi racconto come facevo i backup del blog fino a qualche giorno fa: sul server dove gira WordPress ci sono due sistemi separati che fanno un dump del database tutti i giorni. Il primo via mysqldump, schedulato via cron, l’altro tramite PHPMyBackupPro, ottimo sistema che consiglio a chi non ha la possibilità di programmare dei task sul suo server. Tutti i giorni i file e i dump del database (tengo le ultime due settimane) venivano scaricati sia dal mio server a casa che dal server di DreamHost, in modo da avere tre copie dei dati su tre server in tre luoghi diversi.

Dovendo rimuovere i dati dal server principale di DH, non ho più la possibilità di scaricare da là i dati, quindi ho deciso di fare un doppio salto: il cronjob che scarica a casa provvede poi a uploadare via rsync i file sul server DH di backup. Rsync è un utilissimo comando che permette di trasferire file in modalità incrementale e opzionalmente compressa; in pratica copia solo i file aggiunti o modificati, skippando gli altri.

Per automatizzare il tutto è necessario configurare il password-less login, altrimenti rsync richiede la password ogni volta che viene lanciato. Per farlo serve una coppia di chiavi RSA (se non le avete già), da creare tramite il comando ssh-keygen -t rsa, che genera i file id_rsa e id_rsa.pub in ~/.ssh/. (Premete sempre invio alle richieste del programma). Adesso create via FTP la cartella .ssh sul server di backup (mi raccomando il punto davanti), copiateci id_rsa.pub e rinominatelo in authorized_keys; date i permessi 700 alla directory e 600 al file.

A questo punto rsync funzionerà senza richiedere l’inserimento della password. La sintassi per copiare i file è la seguente:

rsync -e ssh -av local_directory username@server.dreamhost.com:remote_directory

(tutto su una riga) naturalmente sostituendo local_directory, username, server.dreamhost.com e remote_directory con i parametri adeguati alla vostra configurazione. Utente e server sono quelli relativi allo spazio di backup.

Se volete potete aggiungere lo switch --delete, che cancella dalla destinazione i file che non esistono più sulla sorgente.

9 Commenti

Tambu | #

mhh, lo so che così è più bello, ma non c’erano un paio di plugin per db+file? io sono ancora al buon vecchio wp-db-backup che me lo manda in posta una volta al giorno 🙂

orangeek | #

andrea, ma questo spazio da 50gb si potrebbe usare anche per jpg e, temo di no, mp3? che modi ci sono per accedere via web ai backup?

Andrea | #

@Orangeek, lo puoi usare (da TOS) per tutti i contenuti “leciti” di cui detieni i diritti. Lo spazio non è accessibile via web.

Andrea | #

@Tambu, anche io uso quei plugin (anche). Ma secondo te io ho bisogno di tre backup geografici separati una volta al giorno? Lo si fa perché si può fare, che altro? 😉

Peppe | #

Andrea grazie del consiglio, però non ho capito bene come si può accedere a questi 50 GB usando un client FTP

orangeek | #

mmmmh, temevo in effetti che con gli mp3 ci potessero essere problemi. Sarei curioso comunque di capire come farebbero a verificare l’effettiva copertura del copyright (tipo, se sono cd audio rippati).

spora | #

io farei stampa schermo di ogni post e lo incollerei su un foglio word, no?

Gianni | #

Ciao,
grazie della guida.
L’ho seguita alla lettera, ma non funziona.

Ho creato sul client le chiavi:

ssh-keygen -t rsa

ho copiato .ssh/id_rsa.pub nella cartella .ssh sul server di backup di dreamhost e l’ho rinominato in “authorized_keys”.

Non c’è verso, non funziona mi chiede sempre la password.
Il nome utente del client può anche essere diverso da quello del server di backup di dreamhost?