Schnelle und zuverlässige Datensicherung in der Cloud

Eine der problematischsten Aufgaben für den durchschnittlichen Benutzer ist das Sichern unter Windows, wodurch sichergestellt wird, dass die folgenden Probleme behoben werden:

  • schnell (perfekt im Hintergrund);
  • Es würde sowohl die aktuelle als auch die vorherige Version der Dateien beibehalten.
  • Die Speicherung von Dateien wäre für Viren oder Naturkatastrophen wie die Zerstörung des Mediums oder dessen Diebstahl nicht zugänglich.
  • Der Inhalt der Sicherungskopie wäre nur für den Benutzer zugänglich, d. h. war passwortgeschützt.

Es gibt viele Vorschläge dafür, aber keiner von ihnen schließt die Aufgabe ab. Einfaches, einfaches Kopieren gibt keine Geschwindigkeit, schnelles Speichern gibt keine Zuverlässigkeit, Kopieren auf eine externe Festplatte garantiert nicht den Diebstahl.

Es gibt jedoch seit langem Werkzeuge zur Lösung des Problems. Die Hauptsache ist, die Unix-Methode und die Batch-Dateien korrekt anzuwenden. Am einfachsten ist es, die Dateien in einem Archiv zu archivieren und über die Befehlszeile an den Online-Speicher zu senden. Um die Arbeit zu beschleunigen, ist die Aufgabe in zwei Phasen unterteilt: Zuerst wird ein vollständiges Archiv erstellt und an den Online-Speicher gesendet, dann werden nach Bedarf inkrementelle Archive erstellt, was die Geschwindigkeit erhöht. Die Archivverschlüsselung gewährleistet die Datensicherheit.

Was ist erforderlich, um das Problem zu lösen:

  • Yandex-Konto, um Webdav-Zugriff auf die Yandex-Festplatte zu erhalten. Die Verwendung anderer Speicher ist nicht untersagt.
  • 7z - Konsolenarchivierer, kostenlos verteilt;
  • curl - ein Konsolentool für die Arbeit mit dem Internet, das kostenlos verteilt wird.

Aus Gründen der Portabilität habe ich 7z.exe , 7z.dll und Curl.exe in einem Verzeichnis abgelegt . Je nachdem, wie Curl.exe kompiliert wurde, müssen möglicherweise die Bibliotheken libeay32.dll , libssh2.dll , msvcr100.dll , MSVCR110.dll in die Nähe gestellt oder dem System hinzugefügt werden.

Weiter in diesem Verzeichnis ist es wünschenswert, ein Verzeichnis zu erstellen, in das Sie Dateien und Verzeichnisse für das zukünftige Archiv ablegen möchten. Ich habe es "Backup" genannt und ich habe feste Links zu Dateien oder einen Verzeichnislink darin eingefügt (die entsprechende Funktionalität ist in FAR mit der Tastenkombination Alt + F6). Auf diese Weise kann ich, ohne die Struktur vorhandener Daten zu ändern, eine für mich geeignete Struktur für die Sicherung erstellen.

Das nächste Verzeichnis ist temp . Entwarf, ein Datenarchiv zu speichern, bevor es an den Server gesendet wird. Gleichzeitig handelt es sich um eine verschlüsselte Kopie der aktuellen Daten, die im Falle eines Virenangriffs eine zusätzliche Sicherung bietet.

Dann müssen Sie im Quellverzeichnis eine ziemlich einfache bat (cmd) -Datei "full.bat" mit folgendem Inhalt erstellen :

@echo off set filebkp=work set pathbkp=backup set srvbkp=https://user:password@webdav.yandex.ru/backup/%filebkp% set pathtemp=temp set full=%filebkp%-full del /F /Q "%pathtemp%"\ 7z.exe a "%pathtemp%\%full%".7z -x!*.log; -r -mx1 "%pathbkp%\*" -ppass_for_archive curl.exe -k -X DELETE "%srvbkp%" --verbose -o .\stdout curl.exe -k -X MKCOL "%srvbkp%" --verbose -o .\stdout curl.exe -k -T "%pathtemp%\%full%".7z "%srvbkp%"/ --progress-bar --verbose -o .\stdout 

  • set filebkp = work - Legen Sie den allgemeinen Namen des Computers und den Pfad auf dem Server fest, auf dem die Sicherung gespeichert wird. Weil Es kann mehrere Computer geben, dann kann es sich um eine Sicherungskopie eines funktionierenden Computers (Arbeit), eines Heims (Heim) oder eines Laptops (Buchs) handeln. Wenn Sie angeben, dass ein einzelner Name die Kopien nicht miteinander mischen kann.
  • set pathbkp = backup - Legt den Pfad zu dem Verzeichnis fest, in dem die Daten für die Sicherung gespeichert sind. In diesem Fall wird das Verzeichnis mit Hardlinks und Verzeichnislinks angegeben, das Sie zuvor erstellt haben sollten.
  • set srvbkp = https: // user: password@webdav.yandex.ru/backup/%filebkp% - Geben Sie das Verzeichnis auf dem Server an, in das die Sicherung hochgeladen werden soll. Benutzer und Passwort - Passwörter aus Ihrem Konto bei Yandex;
  • set full =% filebkp% -full - Legen Sie den Archivnamen im Voraus fest.
  • del / F / Q "% pathtemp%" \ - Löscht (löscht) das temporäre Verzeichnis
  • 7z.exe a "% pathtemp% \% full%". 7z -x! *. Log; -r -mx1 "% pathbkp% \ *" -p pass_for_archive - die Startzeile des Archivierers. pass_for_archive - Ihr Passwort für das Archiv.
  • curl.exe -k -X DELETE "% srvbkp%" --verbose -o. \ stdout - löscht das Zielverzeichnis auf dem Server.
  • curl.exe -k -X MKCOL "% srvbkp%" --verbose -o. \ stdout - erstellt das Zielverzeichnis auf dem Server neu.
  • curl.exe -k -T "% pathtemp% \% full%". 7z "% srvbkp%" / --progress-bar --verbose -o. \ stdout - Curl-Archiv auf den Server hochladen.

Wenn Sie also das Skript "full.bat" ausführen , erhalten Sie die Vollversion Ihrer Dateien im Archiv im Verzeichnis "temp" und dieselbe im Verzeichnis "backup / work" auf dem Server, verschlüsselt mit Ihrem Kennwort. Dies kann einige Zeit dauern und hat Einschränkungen hinsichtlich des Archivvolumens. Die wichtigsten und gleichzeitig täglich wechselnden Daten sollten jedoch auf diese Weise archiviert werden.

Warum sind sie wichtig und ändern sich täglich? Mit dem folgenden Skript "inc.bat" können Sie geänderte Daten in einem von der Vollversion abweichenden inkrementellen Archiv suchen und an den Server senden:

 @echo off set filebkp=work set pathbkp=..\backup set srvbkp=https://user:password@webdav.yandex.ru/backup/%filebkp% set pathtemp=..\temp set full=%filebkp%-full set inc=%filebkp%-inc set h=%TIME:~0,2% set m=%TIME:~3,2% set s=%TIME:~6,2% set ms=%TIME:~9,2% set curtime=%h%-%m%-%s% set dd=%DATE:~0,2% set mm=%DATE:~3,2% set yyyy=%DATE:~6,4% set curdate=%yyyy%-%mm%-%dd% set curdatetime=%curdate% %curtime% 7z.exe u "%pathtemp%\%full%".7z -x!*.log; -u- -up3q3r2x2y2z0w2!"%pathtemp%\%inc%".7z "%pathbkp%\*" -ppass_for_archive ren "%pathtemp%\%inc%".7z "%inc% %curdatetime%".7z curl.exe -k -T "%pathtemp%\%inc% %curdatetime%".7z "%srvbkp%"/ --progress-bar --verbose -o .\stdout 

Ich denke, Sie können diese Datei selbst entschlüsseln. Mit 7z analysiert das Skript das gesamte Archiv und das Quellverzeichnis im temporären Verzeichnis, findet die geänderten Dateien, packt sie in ein inkrementelles Archiv, das nach dem aktuellen Datum und der aktuellen Uhrzeit benannt ist, und sendet es an den Server. Wenn eine vollständige Sicherung beispielsweise 1 Gigabyte und 3 Minuten dauert, benötigen die geänderten Dateien normalerweise 10 bis 50 Megabyte und fliegen in wenigen Sekunden zum Server. Wenn Sie "inc.bat" in den Windows Task Scheduler einfügen , können Sie diesen Vorgang nach einem Zeitplan zu einem für Sie geeigneten Zeitpunkt ausführen , sodass Sie ihn vergessen können.

Wenn Sie der Meinung sind, dass die Zeit zum Erstellen inkrementeller Kopien zu lang geworden ist, können Sie "full.bat" erneut ausführen. Dadurch werden alle Verzeichnisse aus vollständigen und inkrementellen Archiven gelöscht und eine neue Version der Vollversion erstellt.

Source: https://habr.com/ru/post/de413467/


All Articles