SVN Subversion Backup e Restore
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.