Frage

Ist es möglich, Apache Subversion (SVN) als Allzweck-Backup-Tool zu benutzen? (Als eine Art rsync Alternative.)

War es hilfreich?

Lösung

Ich fand diesen Artikel eine ziemlich coole Beschreibung zu verwenden, um Ihr Home-Verzeichnis SVN-Backup und vieles mehr:

  

Ich verwende Subversion meine Backup-Linux-Boxen. Mit einigen kleineren Kreativität deckt es leicht:

     
      
  • Tägliche Snapshots und Offsite-Backup.
  •   
  • Einfache Hinzufügen und Entfernen von Dateien und Ordnern.
  •   
  • Detaillierte Verfolgung von Dateiversionen.
  •   
     

Es ermöglicht auch ein paar Bonus-Features:

     
      
  • Regelmäßige log E-Mails über Subversion-Ereignis-Hooks Spur von Dateisystem-Aktivität zu halten.
  •   
  • Benutzer kann eine Kasse ihrer Home-Ordner von jeder respository Revision beantragen.
  •   
  • Neue oder Ersatz-Server-Setup mit wenigen svn checkout Befehle werden können.
  •   

Quelle: http: // www .mythago.net / svn_for_backup.html

Auch gefunden dieser Artikel die zeigt ein Beispiel Ihr Home-Verzeichnis der Versionsverwaltung. Auf diese Weise können Sie Ihre Umgebung mit Ihnen bringen, indem Ihr Home-Verzeichnis in eine neue Maschine heraus überprüfen. Früher habe ich etwas ähnliches zu tun und fand es sehr nützlich.

Andere Tipps

Eine Sache im Auge zu behalten, wenn SVN als Backup für Binär-Dateien ist, dass SVN die Größe Ihrer Dateien verdoppeln wird, weil es eine lokale Kopie jeder Datei hält (im .svn / text-base-Datei).

Abgesehen davon, dass ich SVN für eine Sicherung als auch. Fügen Sie einfach alle Dateien dann per Skript begehen.

Als „general purpose“ backup, ich würde sagen, es ist wahrscheinlich nicht die beste Idee, vor allem für die von anderen genannten Gründen (viel überschüssiger Ordner und verschwendete Speicherplatz). Wenn Sie wollen einfach nur Backups halten, wieder würde ich sagen, es gibt wahrscheinlich bessere Möglichkeiten, je nach Bedarf, zB: benötigen Sie, jede einzelne Version jeder einzelnen Datei zu halten, oder würden bestimmte Snapshots Ihrer Daten ausreichen

Doch in meinem Büro, haben wir ein kleines Team von 6, die mit gemeinsam benutzten Dateien arbeiten (zB: Richtlinien und Verfahren Handbücher, Anmeldeformulare, usw.). Ein großer Teil der Zeit, die Teammitglieder arbeiten werden remote (von zu Hause oder unterwegs) und oft offline. Anstatt eine zentrale Shared-Ordner Setup arbeiten, verwenden wir SVN jeder Person eine ganze Arbeitskopie des Ordners zu geben, die sie arbeiten können und beziehen sich auf und, wann immer möglich synchronisieren. Dies schlägt zwei Fliegen mit einer Klappe schlagen: jeder zugreifen und die Dateien auch im Offline-Modus bearbeiten, und es gibt uns wirklich große Redundanz in unseren Backups. Wenn mein Laptop Feuer fängt rel="nofollow, dann ist es keine Probleme, weil ich nur eine weitere Kopie überprüfen können (natürlich auf einem anderen Computer). Wenn der Server auf Feuer fängt, werden wir die Sicherungen des Repository wiederherzustellen. Wenn der Server und das alle Repo-Backups auf Feuer fangen, dann alles, was Sie verloren haben, sind alte Versionen von Dateien. Der einzige Weg, dass Sie alle aktuellen Daten verlieren werden, wenn der Server, Ihre Repo-Backups und jeder einzelne Computer, die eine Kasse Feuer fangen alle hat auf mysteriöse Weise.

Da einige Menschen aber gesagt haben, SVN nie Informationen aus dem Repository entfernen, was bedeutet, dass, wenn Sie nur Sicherungen behalten wollen 60 Tage für die, dann, na ja, man kann es nicht. Dies ist nicht ganz richtig. Durch die Verwendung von Export , Dump und

Eine Sache, die mir viel ärgern würde, sind die ‚.svn‘ Ordner legt, dass svn in jedem Ordner er nachbildet.

Sie sehen ärgerlich, wenn Sie einen Ordner kopieren, sollten Sie mich nicht daran erinnern, sie zu kopieren (oder Sandbox möglicherweise irritiert), und es ist viel schwieriger, durch ein Bündel von Ordnern grep, da es oft eine Menge Hits sind in den .svn Ressourcenordner.

Ich mag die Idee, eine Quelle-Kontrolle der Verwendung Ihrer Umgebung zu steuern. Aber ich persönlich würde nicht wählen für diesen Job Svn. Ich würde für so etwas wie git gehen. Aber das ist wahrscheinlich nur ich ...

ich SVN tun verwenden, um Backup-Computer, und auch meinen Laptop und meinen Desktop zu synchronisieren. Aber es hat die in früheren Antworten erwähnt Probleme, vor allem der Verdoppelung der Festplattennutzung. Ich glaube auch, dass der Überschuss der Dateien und der SVN-Prozess meine HD für Änderungen ständig überprüft machen meine Maschine langsamer.

Ich möchte jedoch hervorheben, dass SVN für synching verschiedene Maschinen sind groß, und Sie erhalten auch den Bonus zu können ist überall eine Datei überprüfen, ob Sie brauchen, um - ich tue es auch in meinem Browser durch die Web-Interface, manchmal.

Insgesamt habe ich gemischte Gefühle über SVN für allgemeine Sicherung. Aber wenn Sie das tun, empfehle ich nicht zum Speichern von Bibliotheken wie Filme, Fotos und Musik, weil sie dazu neigen, groß zu sein (enorm von der doppelten Raumnutzung leiden) und unveränderlich - Sie kein Versionierungssystem dafür brauchen, weil in den seltenen Fällen, wenn Sie eine Datei zu ändern, Sie müssen in der Regel nicht über die alten Versionen (und SVN ist nicht gut zu machen / diffs von binär-Dateien zu speichern, es speichert die gesamte neue Version der Datei). So kann es sei denn, SVN (eine lange Zeit Projekt Absicht von mir) angepasst werden für diese Fälle, ich schlage vor, mit einer alternativen Methode für die Sicherung dieser Art von Dateien.

Sie könnten auch erwägen bup - Hocheffiziente Datei-Backup-System auf dem git Packfile-Format basiert . es basiert auf Git in der Art und Weise er Daten speichert, die für die Speicherung von Dateien und deren Unterschiede sehr effizient ist.

Ich habe CVS als Ersatz für Geist verwendet, so sehe ich nicht, warum nicht.

I'ts schön, wie Sie eine Baseline markieren können. Sie können die Maschinen verändern verwalten

Das funktioniert besser auf unixes als Fenster, offensichtlich.

Die Sache, die mich von dieser Idee setzen würde, ist, dass für den allgemeinen Gebrauch jegliche Binärdaten über kopiert werden würde jederzeit es geändert, während die Textinhalte SCM-Systeme sind um basieren, können in Form von diffs leicht aktualisiert werden.

So Sie es tun könnte, nur bewusst sein, Sie nicht, es benutzen möchten Repositories verwalten Dinge wie Foto, wenn Sie viel Bearbeitung zu tun.

Die nette Sache über mehrere Allzweck-Backup-Lösungen (sagen wir, Time Machine) ist, dass sie mehrere binäre Veränderungen nach einer Weile aufrollen können Platz zu sparen. Ich bin nicht sicher, wie einfach das in SVN oder git oder Mercurial zu tun wäre.

Mit SVN für Backups arbeiten können. Doch im Laufe der Zeit kann es schwierig sein, alte Versionen zu löschen, die nicht benötigt werden. Sagen Sie nur 30 oder 60 Tage von Backups halten wollen. SVN unterstützt keine einfache Möglichkeit, jede Geschichte älter als X Tage zu entfernen. Wenn Sie nicht eine Möglichkeit haben, alte Geschichte zu bereinigen werden Sie schließlich führen Sie Ihre Backup-Laufwerk aus dem Raum.

Hier ist ein Zitat aus dem SVN Buch auf dem svndumpfilter Befehl:

  

Da Subversion alles speichert in   ein opakes Datenbanksystem, versuchte   manuelle Optimierungen sind unklug, wenn auch nicht ganz   schwierig. Und sobald Daten hat   in Ihrem Repository, Subversion gespeichert   im Allgemeinen bietet keine einfache Möglichkeit,   dass Daten zu entfernen. [13]

     
    

[13] Das, nebenbei bemerkt, ist ein Feature, kein Bug.

  

Ich fand unisono eine bessere Option als SVN für ein rsync sein Alternative dar.

Diese Aussage JoaoPSF ist falsch:

  

(und SVN ist nicht gut zu machen / zu speichern diffs von binären Dateien, speichert es die gesamte neue Version der Datei)

Sehen Sie dieses Zitat von Wie geht Subversion Binärdateien :

  

Beachten Sie, dass, ob eine Datei binäre Änderungen an der Datei zu speichern, nicht die Menge des Repository Raum beeinflussen verwendet, auch nicht die Menge an Verkehr zwischen Client und Server beeinflussen. Für die Lagerung und Übertragungszwecken verwendet Subversion eine diffing Methode, die ebenso gut auf Binär- und Textdateien arbeitet; Dies ist völlig unabhängig von dem diffing Verfahren durch den Svn diff-Befehl verwendet.

Sichern / etc mit Quellcodeverwaltung können eine große Hilfe sein, wenn Sie eine Änderung rückgängig machen wollen, dass Ihr System abgespritzt, experimentiert mit Änderungen oder von einem Server zum anderen Änderungen vornehmen.

Aber Subversion Vielzahl von .svn Verzeichnisse können, dass nicht nur in die Quere kommen bei der Suche aber in einigen Fällen, wie * .d Ordner, schlecht gestaltete Systeme könnten die .svn Ordner selbst als mit Konfigurationsdaten interpretieren.

Ich ziehe jetzt Mercurial mit zum Sichern / etc, da es einen einzigen .hg Ordner unter / etc legt. Für echte Backup und nicht nur Steuer Version müssen Sie an anderer Stelle, dass .hg Ordner kopieren.

So verwenden Sie SVN als Backup auf Linux wie folgt vor:

  1. Erstellen Sie eine leere Repo.
  2. Kasse der leeren Repository in der Ordnerstruktur Sie sichern möchten.
  3. Verwenden Sie den folgenden Code-Schnipsel (svnauto). Sie haben zu ersetzen „myuser“ und „mypassword“ mit gültigen Anmeldeinformationen für Ihren Repository:
    #!/bin/sh
    svn status --depth=infinity --username=myuser --password=mypassword > /tmp/svnauto_tmp.list
    cat /tmp/svnauto_tmp.list | grep '^?' | sed -e 's/^?       /svn add --depth=infinity --force --username=myuser --password=mypassword "/g' -e 's/$/@"/g' | sh
    cat /tmp/svnauto_tmp.list | grep '^!' | sed -e 's/^!       /svn delete --username=myuser --password=mypassword "/g' -e 's/$/@"/g' | sh
    rm -f /tmp/svnauto_tmp.list
    svn update . --username=myuser --password=mypassword
    svn commit --username=myuser --password=mypassword --message "Automatic backup"

Das Skript oben wird hinzufügen / entfernen und alle Dateien und Unterverzeichnisse im aktuellen Verzeichnis aktualisieren. Um es zu nutzen einfach in den Ordner cd Sie sichern möchten (die eine Arbeitskopie natürlich sein muss), und führen Sie svnauto. Beachten Sie, dass Sie benötigen grep haben und sed auf Ihrem System installiert, und es erstellt eine temporäre Datei in / tmp. Es kann für jede Nacht begeht von einem Cron-Job verwendet werden, den folgenden cron-Skript:

#!/bin/sh
export LANG=en_US.UTF-8 && cd /my/directory && echo Starting backup $(date) > /root/backup_log.txt && /root/svnauto >> /root/backup_log.txt 2>&1 && echo Finished backup. >> /root/backup_log.txt && cat /root/backup_log.txt

Das cron-Skript geht davon aus, dass /my/directory ist der Ordner, die Sie sichern möchten (ggf. austauschen). Es geht auch davon aus Sie das svnauto Skript in /root setzen. Es erstellt ein Protokoll und zeigt sie am Ende. Ein weiteres Detail: Die erste export ist für svn notwendig, um die richtige Sprache zu finden. Sie können diese Zeile in die eigene Landessprache einstellen müssen, damit es funktioniert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top