Archiv nach Schlagworten: SVN

SVN :: Backup and Restore Scripting

Hat man ein privates SVN Repository muss man sich auch selbst um ein Backup kümmern. Wird nicht vom ganzen Rechner ein Backup gemacht, so helfen kleine Scripte, die durch Crontabs gestartet werden. Zu diesem Zweck habe ich mir selbst ein kleines Script gebaut:

#!/bin/bash
backupDate=$(date +%Y%m%d-%H%M)
backupSrc="/svn"
backupDest="/svn/_BACKUP"
restoreScript="#!/bin/bash
sudo mkdir /$backupSrc
mkdir /$backupDest"

rm $backupDest/*
cd $backupSrc

for repo in *; do
        if [ "$repo" != "_BACKUP" ] ; then
                echo "backup: $repo"
                svnadmin dump $repo > $backupDest/$backupDate-$repo.svn.dump
                restoreScript="$restoreScript
sudo svnadmin create $backupSrc/$repo
sudo svnadmin load $backupSrc/$repo < $backupDate-$repo.svn.dump
"
        fi
done

cd $backupDest


restoreScript="$restoreScript
cd /
sudo chown -R www-data:subversion $backupSrc"
cd $backupDest
echo "$restoreScript" > restore.sh
chmod +x restore.sh

tar -cf $backupDate-svn.tar *.dump restore.sh

#copy
cp $backupDate-svn.tar /BACKUP/svn/

Will man noch sicherer sein, kann man das Backup mittels scp auch noch auf einen über das Internet erreichbaren PC speichern. Hierfür muss der RSA oder DSA Key noch auf dem Remote PC in die Datei „authorisized_keys“ eingetragen werden, und folgende Zeile im Script ergänzt werden:

scp -P PORT $backupDate-svn.tar USER@SERVER.de:/PFAD_ZU_BACKUP
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

SVN :: TortoiseSVN over SSH, different port

Manch einer hat unter einer Domain mehrere PC’s hängen, die per SSH erreicht werden können – über verschiedene Ports nach außen.

Windows

Ist dies der Fall und SVN soll über SSH genutzt werden, dann sind folgende Konfigurationen vorzunehmen:

C:\Users\[YOUR_NAME]\AppData\Roaming\Subversion\config

editieren und dort nach „[tunnel]“ suchen. direkt darunter kommt jetzt die Anpassung des SSH Befehls:

ssh2345 = C:\\Program Files\\TortoiseSVN\\bin\\TortoisePlink.exe -P 2345

wobei „ssh2345“ frei wählbar ist.

In TortoiseSVN muss man jetzt für einen Checkout folgendes eingeben:

svn+ssh2345://NAME@DOMAIN/PATH_FROM_ROOT_DIRECTORY

als Beispiel:

svn+ssh2345://me@mydomain.com/var/repos/svn/testProject

Linux

Unter Linux geht es ähnlich. Dort gibt es im home – Verzeichnis ein Unterverzeichnis „.subversion“ in diesem Ornder gibt es eine „config“ Datei. Diese muss editiert werden, und auch hier nach „[tunnel]“ gesucht werden.
Hier muss jetzt unter dem „[tunnel]“ folgendes eingefügt werden:

ssh2345 = ssh -p 2345

ein Beispiel zum auschecken wäre dann:

svn co svn+ssh2345://me@mydomain.com/var/repos/svn/testProject
VN:F [1.9.22_1171]
Rating: 0.0/5 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)