Benvenuti

SVN Subversion Backup e Restore

SVN Subversion Backup e Restore
Scritto da Martedì 29 Ottobre 2013 in Appunti in codice | Come fare per
Letto 2,548 volte

Questa è una guida veloce su come fare il backup (dump) e ripristinare (load) un repository SVN (Subversion) su Linux.

Questo compito è in realtà molto semplice ma allo stesso momento molto importante. Eseguire il backup ed il ripristino di un repository SVN è molto utile quando si desidera spostare i propri repository  su di un nuovo server o è necessario recuperare dati persi o danneggiati. In questa breve guida si suppone che abbiate già a disposizione un repository Subversion (SVN). Nella guida utilizzeremo un repository  di esempio “testrepo”

 

1. Backup (dump) del repository SVN (Subversion)

1.1 Creiamo il  Dump

svnadmin dump /path/to/reponame > /path/to/reponame.dump

Esempio reale

svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump

1.2 Comprimiamo il dump creato con Gzip

gzip -9 /path/to/reponame.dump

Esempio reale

gzip -9 /backups/testrepo.dump

 1.3 SVN Dump e Gzip del Dump in un unico comando

svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame.dump.gz

Esempio reale

svnadmin dump /var/www/svn/testrepo | gzip -9 > /backups/testrepo.dump.gz

 

2. Restore (load) del repository SVN (Subversion)

 2.1 Unzip del File Dump

gunzip /path/to/reponame.dump.gz

Esempio reale

gunzip /backups/testrepo.dump.gz

 

 2.2 Creazione di un Repository SVN (Subversion) vuoto

svnadmin create /path/to/reponame

Esempio reale

svnadmin create /var/www/svn/testrepo

2.3 Impostiamo i permessi del Repository SVN (Subversion)

chown -R svnuser:svngroup /path/to/reponame

## If you use SELinux then remember also set security context ##
chcon -R -t httpd_sys_content_t /path/to/reponame

## Following enables commits over http ##
chcon -R -t httpd_sys_rw_content_t /path/to/reponame

Esempio reale

chown -R apache:apache /var/www/svn/testrepo

## Set security context ## 
chcon -R -t httpd_sys_content_t /var/www/svn/testrepo

## Following enables commits over http ##
chcon -R -t httpd_sys_rw_content_t /var/www/svn/testrepo

 

2.4 Carichiamo (Load) i dati nel Repository SVN (Subversion) dal Backup

svnadmin load /path/to/reponame < /path/to/reponame.dump

Esempio reale

svnadmin load /var/www/svn/testrepo < /backups/testrepo.dump

 

3. Automatzziamo i Backup del Repository SVN (Subversion)

3.1  Apriamo Crontab in modifica con un utente non privileggiato che abbia accesso al repository SN anche in sola lettura

crontab -e

 

 3.2 Comandi Crontab da aggiungere per eseguire giornalmente o settimanalmente il Dump SVN

@daily svnadmin dump /path/to/reponame > /path/to/reponame.dump
## OR ##
@weekly svnadmin dump /path/to/reponame > /path/to/reponame.dump

Esempio reale

@weekly svnadmin dump /var/www/svn/testrepo > /backups/testrepo.dump

 

3.3 Esempio Avanzato di dump con Time,  Date e Gzip per mantenere uno storico dei dump

@daily svnadmin dump /path/to/reponame | gzip -9 > /path/to/reponame-$(date +"\%Y-\%m-\%d-\%T").dump.gz

Esempio reale

@daily svnadmin dump /var/www/svn/testrepo | gzip -9 > /backups/testrepo-$(date +"\%Y-\%m-\%d-\%T").dump.gz

Mi auguro che questa miniguida sia stata utile.

This Post Has 0 Comments

Leave A Reply