Was passiert, wenn rsnapshot / rdiff-backup während einer Übertragung unterbrochen wird?

20

Frage sagt alles:

Was passiert, wenn rsnapshot oder rdiff-backup während einer Übertragung unterbrochen wird?

Ich weiß, dass rsnapshot versucht, eine vollständige Momentaufnahme Ihres Systems in rotierender Form zu erstellen, und rdiff-backup erstellt eine differenzielle Sicherung, die auf den zuvor gespeicherten Dateien basiert.

Also: Was passiert, wenn es in der Mitte unterbrochen wird?

Führt dies zu einem "unvollständigen Schnappschuss"?

Werden andere Schnappschüsse, die von diesem abhängig sind, beschädigt? (Sicher nicht, aber ...?)

emf
quelle
1
Wäre es nicht viel klarer gewesen, wenn Sie diese Frage in zwei getrennte Fragen unterteilt hätten?
Andol
2
@andol Wenn er nach Informationen suchen würde, wie man sich von einer unterbrochenen Übertragung erholt, wäre es meiner Meinung nach besser, zwei Fragen zu stellen. Ich interpretierte dies eher als eine Aufforderung, zu vergleichen, wie viel Ärger Sie hätten, wenn Sie die einzelnen Dienstprogramme verwendet hätten.
ændrük
Danke Andol; aber nein, ich denke das steht als eine frage. Grundsätzlich "Was passiert, wenn rsnapshot / rsync mitten in der Übertragung unterbrochen wird?", Und ich denke, die Tools erstrecken sich über eine bestimmte Nische, so dass dies IMO nicht zwei separate Fragen rechtfertigt. Ich stellte die Frage nach einem unvollständigen Schnappschuss als mögliches Ergebnis zur Klärung.
EMF

Antworten:

22

Mein Verständnis ist, dass ...

rdiff-backup erkennt das unvollständige Inkrement beim nächsten Start. Das unvollständige Inkrement wird gelöscht, sodass der Sicherungsspeicherort derselbe ist, als wäre der unterbrochene Sicherungsversuch noch nie gestartet worden.

rsnapshot ist ein wenig komplizierter , weil seine Routine mehr schrittweise und variiert in Abhängigkeit von der Verwendung der sync_firstund use_lazy_deletesOptionen.

  • Wenn Sie verwenden sync_firstund rsnapshot syncunterbrochen werden, können Sie einfach noch rsnapshot synceinmal rennen , um die Dinge zu klären. Wenn Sie rsnapshot <backup level>stattdessen versehentlich zu diesem Zeitpunkt ausgeführt werden, bleibt der letzte Sicherungspunkt unvollständig und wird durch Rotationen übertragen.
  • Wenn Sie nicht verwenden sync_first, stecken Sie einfach an einem unvollständigen Sicherungspunkt fest, der eine Mischung aus alter und neuer Dateiversion ist. Sofern Sie nicht jeden Sicherungspunkt manuell rückwärts drehen, wird der unvollständige Sicherungspunkt durch Rotationen übertragen.
  • In beiden Fällen geht beim Ausführen rsnapshot <backup level>der älteste Sicherungspunkt verloren, sofern er nicht use_lazy_deletesaktiviert ist.

Beachten Sie dies sync_firstund use_lazy_deleteskosten Sie mehr Speicherplatz.


Eine Erinnerung / ein Haftungsausschluss: Dies sollte selbstverständlich sein, aber niemals blindlings den Ratschlägen anderer im Internet vertrauen. Wenn Sie vorhaben, rdiff-backup oder rsnapshot für etwas unternehmenskritisches zu verwenden , lesen Sie jedes Wort im Handbuch und testen, testen, testen Sie alles selbst!

ændrük
quelle
1
Als nennenswerte Erinnerung und gute Praxis, um mit dieser Art von "richtigen Methoden" Schritt zu halten, wollen wir nicht, dass Linux zu dummem Konsumland wird. Danke für den Hinweis.
EMF
So versteht richtig: mit einer unvollständigen Sicherung „durch durch die Rotationen“ für rsnapshot wird auf zwei Dinge betragen: 1. Das Snapshot unvollständig sein wird , wenn zu einem späteren Zeitpunkt wieder genannte 2. All geordneten Snapshots werden noch vollständig sein , Es wird jedoch nicht ordnungsgemäß auf vorherige fest verknüpfte Dateien zurückgegriffen, die im unvollständigen Snapshot übersehen wurden. Ist das richtig?
EMF
1

Das ist mir gerade passiert. Mein externes Laufwerk war in der Mitte der inkrementellen Sicherung von rsnapshot voll:

rsync: write failed on "<path>": No space left on device (28) 

Jetzt möchte ich ein paar Dinge mitteilen, die ich daraus gelernt habe. dh um beträchtliche Chancen für einen solchen Fall zu reparieren und einzuschränken, mich zurückzubeißen;)

Setzen Sie die unterbrochene Sicherung eines Rsnapshot fort

Ich kenne zwei Möglichkeiten, um das sicher rückgängig zu machen.

Manuell

  1. Löschen Sie das letzte Verzeichnis (zB daily.0)
  2. Benennen Sie aufeinanderfolgende Verzeichnisse um (daily.1 -> daily.0, ...); mögliches Skript 1
  3. Führen Sie das Backup wie gewohnt aus.

Automatisch

Da rsnapshot keine Funktionen zum Anhalten / Stoppen und Fortsetzen hat (mit Ausnahme des eingeschränkten " Übersprungen aufgrund eines Rollback-Plans " 2 ), müssen wir für diese Funktionen einen Wrapper verwenden.

rsnapshot-once3 von Philipp C. Heckel ist ein Wrapper für rsnapshot in PHP, der:

  • Funktioniert ohne Änderung der Konfiguration Ihres rsnapshots
  • stellen Sie sicher, dass tägliche, wöchentliche und monatliche Aufgaben nur einmal im jeweiligen Zeitraum über cron ausgeführt werden (gut für Laptops)
  • Rollback der fehlgeschlagenen Sicherung (prüft, ob die letzte Sicherung abgeschlossen wurde; wenn nicht, wird das letzte Verzeichnis gelöscht und aufeinanderfolgende Verzeichnisse werden umbenannt, zB daily1. -> daily.0, ...)

Ich benutze es seit einem Jahr und bin ein zufriedener Benutzer: Ich habe die php.ini openbase_dirfür meinen Backup-Bedarf und meine Voila bearbeitet .

Hinweis: slm hat mich hier von doppelter Frage verlinkt : Rsnapshot-Ziel voll - wie sicher erneut ausführen?

tuk0z
quelle