Massen-Backup von Git Repositories ( zur cloudcontrol Insolvenz)

16.02.2016:

Mein bisheriger Lieblingsanbieter für Cloud-Hosting wird zum Ende des Monats seinen Dienst einstellen. Schade. Aber nun muss man auch reagieren und seine Daten sichern.

Um meine Repositories zu migrieren, habe ich mir ein kleines Shellscript geschrieben um alle auf einmal lokal zu klonen – und anschließend wo anders hin zu transferieren. Das wollte ich mit euch teilen:

cloudcontrol-backup.sh:

array=(repositoryname1,
 repositoryname2)
typeset -i i=0 max=${#array[*]}
while (( i < max ))
do
 echo "git clone ssh://${array[$i]}@cloudcontrolled.com/repository.git ${array[$i]} "
 eval "git clone ssh://${array[$i]}@cloudcontrolled.com/repository.git ${array[$i]} "
 i=i+1
done

Ihr müsst lediglich repositoryname1, repositoryname2, etc. durch eure eigenen Repositories ersetzen und anschließend das Script mit sh cloudcontrol-backup.sh ausführen.

Jetzt benötige ich nur noch ein neues Zuhause. Aktuell liebäugle ich damit, einfach alles zu AWS Codecommit rüber zu schieben. Sind hauptsächlich private, an denen nur ich arbeite.

Sharing:
Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedIn



6 Gedanken zu „Massen-Backup von Git Repositories ( zur cloudcontrol Insolvenz)“

  1. das Offensichtliche:
    * nur spaces verwenden um array Elemente zu trennen
    * i=i+1; echo „$i“ -> i+1 // was du willst ist i=$((i + 1))
    * wth is typeset?
    * warum eval? git clone „ssh://${array[$i]}@cloudcontrolled.com/repository.git“ „${array[$i]}“ tuts auch

    Ich glaube das ist eher was du möchtest:

    #!/usr/bin/env bash
    array=(repositoryname1 repositoryname2)
    set -xe
    for i in „${array[@]}“; do
    git clone „ssh://${i}@cloudcontrolled.com/repository.git“
    done

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.