Kann ich feststellen, ob crashplan eine bestimmte Datei in einem bestimmten Zustand gesichert hat?

693
Chris Cogdon

Ich möchte in der Lage sein, programmgesteuert zu erfahren, ob CrashPlan eine bestimmte Datei einschließlich der aktuellen Updates dieser Datei gesichert hat. Dh, dass der aktuelle Inhalt einer Datei gesichert wird.

Es ist relativ leicht zu erkennen, wann CrashPlan zuletzt eine Datei gesichert hat: Der Dateiname wird in /usr/local/crashplan/log/backup_files.log.0 angezeigt. Mit etwas Genauigkeit konnte ich die Sicherungszeit mit der letzten Änderungszeit vergleichen die Datei, aber diese Methode scheint etwas zweifelhaft.

Ich könnte mir ein paar Methoden vorstellen, aber ich weiß nicht wie:

  • Vergleichen Sie die aktuelle Datei mit den Metadaten von CrashPlan zu dieser Datei. Dies erfordert Kenntnisse über das Format der "Cache" -Dateien von CrashPlan sowie über das verwendete Hashsystem. Dies kann zwar über die CLI erreicht werden, aber die CLI ist nur ein Portal in die GUI, und ich brauche etwas, das skriptfähig ist.

  • Stellen Sie die Datei in einem temporären Verzeichnis wieder her und vergleichen Sie sie. Leider gibt es keine CLI für Wiederherstellungen. die GUI ist der einzige Weg.

Ich werde beschreiben, was ich erreichen möchte. Es wäre schön zu wissen, wie man das oben macht, auch wenn es alternative Methoden für Folgendes gibt:

Ich verwende CrashPlan für kontinuierliche Sicherungen in meiner PostgreSQL-Datenbank mithilfe von WAL-Archiven. In der aktuellen Konfiguration kopiert der Archivbefehl die Dateien in ein Archivverzeichnis, das von CrashPlan gesichert wird. Von Zeit zu Zeit bestätige (oder vertraue ich) manuell eine Gruppe von WALs, die aus dem Archivverzeichnis entfernt werden, und mache gelegentlich eine Wiederherstellung über die GUI, um sicherzustellen, dass aktuelle und "gelöschte" WALs abgerufen werden können. Das xlog-Verzeichnis wird ebenfalls gesichert. Ich habe also gute Chancen, eine nahezu vollständige Wiederherstellung durchzuführen, selbst wenn ein bestimmtes xlog noch nicht von PostgreSQL archiviert wurde.

Ich möchte diesen Prozess automatisieren können, was entweder die Bestätigung des Sicherungsstatus und der Aktualität oder die Automatisierung einer Wiederherstellung zu Vergleichszwecken erfordert.

(Als Bonus kann ich, wenn die Methode vertrauenswürdig ist, den "Archiv_Befehl" von "In Archivordner kopieren" in "Bestätigen, dass CrashPlan die aktuelle Version gesichert hat" verwandeln und das Archivverzeichnis vollständig aufheben).

(Und ja, ich mache regelmäßig pg_dumpalls, zusätzlich zu den oben genannten.)

0

2 Antworten auf die Frage

0
Julian Knight

Das wird leider nicht möglich sein, fürchte ich. Sicherlich nicht mit der Consumer-Version, ich bin nicht mit der Business / Enterprise-Version vertraut.

Ein Teil des Problems ist, dass die Daten lokal verschlüsselt sind. Ich denke nicht, dass Sie einfach alles nützliche aus dem Cache holen können.

Ich denke, Sie suchen nach dem falschen Werkzeug für den Job. Ich würde empfehlen, nach einem fokussierteren Backup-Tool zu suchen, vielleicht mit einem bestimmten Postgres-Agenten.

Ja, natürlich gibt es geeignetere Lösungen, aber bei allen muss ein weiterer Sicherungsdienst hinzugefügt werden, den ich hoffte zu vermeiden! Chris Cogdon vor 9 Jahren 0
Meinetwegen. So sehr ich CP auch mag, hat er doch Einschränkungen. Ich habe keine einzige Lösung gefunden, die alles kann, was ich will. Jeder hat Stärken und Schwächen. Julian Knight vor 9 Jahren 0
0
bougui

Ich habe ein einfaches Skript geschrieben, das den Trick macht. Dabei wird jedoch die Sicherungszeit mit der letzten Änderungszeit der Datei verglichen. Es ist die einzige Lösung, die ich gefunden habe. Hier ist der Link zu meinem Blogpost und dem entsprechenden Kern:

http://bougui505.github.io/2016/05/20/get_crashplan_backup_status_using_a_shell_command_line_on_linux.html

https://gist.github.com/bougui505/ba9db84a2fc6f9330f3ccf32a352a98e#file-backup_stat-sh