Massen-Backup von Git Repositories ( zur cloudcontrol Insolvenz)

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

Veröffentlicht von Klaus Breyer

Hat Software Engineering studiert und 2010 die Social Media Agentur buddybrand mitgegründet. War dort bis 2015 als technischer Geschäftsführer / Chief Technology Officer verantwortlich für die Implementierung von Technologien und Innovationen im Marketing-Kosmos. Seit 2016 nun Mitgründer und CTO von BuzzBird, der #1 Plattfform für automatisiertes Influencer Marketing.

Immer auf der Suche nach Trends und technischen Herausforderung liegt der Fokus aktuell auf der Entwicklung neuer Geschäftsmodelle und Engagements als Business Angel. Kann auch als Freelance CTO und Berater gebucht werden.

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.