Säkerhetskopiera Subversions filarkiv

Subversion (SVN) är ett av de mest populära systemen för versionshantering och används b la av Apache, Google Code och Source Forge. Som allt annat viktigt bör också SVN:s filarkiv (repo) säkerhetskopieras.

Vanliga metoder för säkerhetskopiering av SVN är att använda rsync eller LVM snapshot. I båda fallen krävs dock att SVN inte är aktivt, vilket ökar komplexiteten och kan vara problematiskt om SVN måste vara tillgångligt 24/7.

En bättre metod (enligt min mening) är att i stället använda svnadmin dump, vilket kan köras på ett aktivt SVN system och skapar dumpar som kan flyttas till andra SVN servers och tom SVN versioner.

För att skapa en dump:

svnadmin dump /sökväg/till/filarkiv > /sökväg/till/dump.ext

Man kan också väldigt enkelt packa ihop det hela för att spara plats:

svnadmin dump /sökväg/till/filarkiv | gzip -9 > /sökväg/till/dump.ext

Eller varför inte skapa ett enkelt shell script att köra i cron:

#!/bin/bash

# config
SAVE_DAYS = 7
REPO_DIR = "/path/to/repo"
BACKUP_DIR = "/path/to/backups"
BASE_GZ = "svn_dump.gz"

# put all together
OLD_DATE = `date --date="$SAVE_DAYS days ago" +%Y%m%d`
CURRENT_DATE = `date +%Y%m%d`
DUMP_FILE = "$BACKUP_DIR/$CURRENT_DATE.$BASE_GZ"

# run dump command
svnadmin dump $REPO_DIR | gzip -9 > $DUMP_FILE

# clean up old dumps
OLD_FILE = "$BACKUP_DIR/$OLD_DATE.$BASE_GZ"
rm -f $OLD_FILE

Scriptet tar alltså en dump utan att SVN behöver stoppas (hot-copy), sparar denna med datum och städar bort gamla dumpar. Om man har man flera filarkiv kan man utöka scriptet med filarkivets namn som argument.

Att återställa eller flytta ett filarkiv är lika enkelt:

  1. gunzip -c [Ymd]svn_dump.gz > [Ymd]svn_dump
  2. svnadmin load /path/to/repo < [Ymd]svn_dump
  3. chown -R svnuser:svngroup /path/to/reponame  (new repofolder or server)
  4. chcon -R -t httpd_sys_content_t /path/to/reponame   (if SELinux)
    chcon -R -t httpd_sys_rw_content_t /path/to/reponame

Det finns ingen orsak att strunta i att säkerhetskopiera SVN:s filarkiv. Eller att göra det hela onödigt komplicerat.

 

Annonser
Tagged with: , , ,
Publicerat i Programmering, Säkerhet
Erik Schütten

Hej! Jag heter och är bosatt på Åland, bekvämt mittemellan Sverige och Finland.

Jag har jobbat med IT i drygt 30 år och är bla delägare i ett internationellt mjukvaruföretag där jag ansvarar för den tekniska driften och -utvecklingen (Vice President of Technology).

Behöver du kvalificerad hjälp med din IT verksamhet? Fråga Erik! Du når mig via erik@scab.ax. Mer info om mina tjäntser hittar du på www.scab.ax.

Linkedin Twitter Facebook Google+ RSS

Ange din e-postadress för att följa denna blogg och få meddelanden om nya inlägg via e-post.

QR-code
About Erik Schütten
Senior IT expert with 30 years of experience in designing, implementing and managing IT systems and staff. Follow Erik Schütten on Google+, Twitter and Facebook