Censorship banner.png

Tecnico:Backup strutture

From Wiki - Hipatia
Revision as of 21:53, 13 June 2011 by Argon (talk | contribs) (Created page with '== Backup dei siti == In questa pagina vengono riassunti tutti i passi che ci sono da fare per backuppare i nostri siti, ossia: Drupal, Wiki, Gallery. Prerequisiti: #. acces…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Backup dei siti

In questa pagina vengono riassunti tutti i passi che ci sono da fare per backuppare i nostri siti, ossia: Drupal, Wiki, Gallery.

Prerequisiti:

#. accesso ssh al server dove stanno i file #. buona banda :) #. sul server ci devono essere: * tar * gzip * mysqldump * date * rsync * nice Una cosa intelligente da fare e' passare i comandi a nice, in modo che essi abbiano una priprita' bassa e non sovraccarichino il server

prima di ogni comando dare nice -n 19

N.B: e' buona prassi che per ogni web application (mediawiki, drupal, gallery) sia disponibile sul server la stessa versione del software in uso, ancora in formato tar.gz . Infatti tutti i programmi che si basano su mysql per funzionare, richiedono che i backup siano ripristinati con la stessa versione di software su cui erano stati fatti.

Ad esempio, se noi usiamo Drupal 6.16 e ne facciamo un backup, la prima volta che vorremo ripristinare i file cosi backuppati, dovremo farlo utilizzando la stessa versione di drupal (nel nostro esempio la 6.16). Nel caso in cui a quel tempo avremo una versione piu' aggiornata, occorrera' comunque partire dalla 6.16 e avanziare di una versione per volta, in modo da non danneggiare i dati (es permessi, testi, immagini, utenti, password, ecc).

Se quindi nella directory in cui abbiamo drupal, teniamo anche una versione inutilizzata del suo codice (drupal-6.16.tar.gz) allora saremo in una botte di ferro :)

Drupal

Per quanto riguarda drupal e' necessario copiare: # il codice di drupal, nella versione .tar.gz # il database di drupal. Cio' e' molto comodo e facile grazie all'estensione "Backup and Migrate", che permette di fare il tutto direttamente da web.

          Nota: e' saggio tenersi anche una copia del codice del 

modulo Backup and Migrate. # la directory che contiene i file di drupal, ossia le configurazioni, i file uploadati, ecc.

Per backuppare la directory e' sufficiente fare: tar -czf /var/www/main/hipatia.net/guri guri_drupal-$(date '+%d%m%Y').tar.gz

Ricordarsi di fare rsync dei dati in locale :)

Mediawiki

# Cosi come per drupal, copiare il tar.gz del codice # Mettere il wiki in read-only mode. Per farlo e' sufficiente editare il file LocalSettings.php e aggiungere la riga: $wgReadOnly = "We are upgrading MediaWiki, please be patient. This wiki will be back in a few hours."; # Backuppare il database: nice -n 19 /usr/bin/mysqldump -u $USER --password=$PASSWORD --default-character-set=latin1 $DATABASE -c | nice -n 19 /bin/gzip -9 > wiki_hipatia-sql-$(date '+%d%m%Y').sql.gz

NOTA IMPORTANTE!!!! Prima di tutto e' importantissimo assicurarsi che il character set del database sia corretto, altrimenti tutti i contenuti testuali verranno sputtanati!

Per controllare il character set: 1. leggere in LocalSettings.php 2. loggarsi in mysql: mysql -u root -p 2.1. entrare nel db: use $DATABASE; 2.2 dare il comando status; 2.3. controllare la voce server character set. Ovviamente $USER, $PASSWORD, $DATABASE, si trovano in LocalSettings.php

NOTA: l'utente $USER deve avere i privilegi LOCK TABLES e SELECT su $DATABASE, altrimenti il comando mysqldump restituira' un errore. # Fatto questo si devono ancora backuppare tutti i file del wiki: tar -czf /var/www/main/hipatia.net/wiki wiki_hipatia_dir-$(date '+%d%m%Y').tar.gz # fare un backup XML dei contenuti del wiki: php -d error_reporting=E_ERROR dumpBackup.php --full | gzip > wiki_hipatia-xml-$(date '+%d%m%Y').xml.gz

	NOTA: perche' cio' sia possibile occorre aggiungere le seguenti due righe in LocalSettings.php:
               $wgDBadminuser = "$USER";
               $wgDBadminpassword = "$PASSWORD";

# rimettere il wiki in read/write mode, commentando la riga aggiunta al punto 2.


Gallery

# Backuppare il codice del gallery, in versione tar.gz # copiare il codice in uso del gallery: tar -czf /var/www/main/hipatia.net/gallery2 gallery_dir-$(date '+%d%m%Y').tar.gz # copiare gli album fotografici: tar -czf /home/hipatia/albums gallery_albums-$(date '+%d%m%Y').tar.gz # backuppare il db del gallery (contiene tutte le descrizioni delle foto, gli utenti, i tag, ecc.) mysqldump -u $USER --password=$PASSWORD --default-character-set=latin1 $DATABASE -c | gzip -9 > gallery-sql-$(date '+%d%m%Y').sql.gz dove $USER $PASSWORD e $DATABASE sono reperibili in config.php NOTA BENE: questo db qui usa colum prefix e table prefix, quindi occorre aggiungere al comando: