{"id":34954,"date":"2019-10-31T22:01:30","date_gmt":"2019-10-31T19:01:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati\/"},"modified":"2019-10-31T22:01:30","modified_gmt":"2019-10-31T19:01:30","slug":"rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati","title":{"rendered":"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/5c043312994d60411dabba12b445a622.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>W tym artykule om\u00f3wiono narz\u0119dzia do tworzenia kopii zapasowych, kt\u00f3re wykonuj\u0105 kopie zapasowe, tworz\u0105c archiwa na zapasowym serwerze.<\/p>\n<p><\/p>\n<p>Z tych, kt\u00f3re spe\u0142niaj\u0105 wymagania, s\u0105 duplicity (kt\u00f3re ma przyjemny interfejs w postaci deja dup) oraz duplicati.<\/p>\n<p><\/p>\n<p>Innym godnym uwagi narz\u0119dziem do tworzenia kopii zapasowych jest dar, ale poniewa\u017c ma on do\u015b\u0107 obszern\u0105 list\u0119 opcji \u2014 metoda testowania obejmuje ledwie 10% tego, na co jest on zdolny \u2014 nie testujemy go w ramach bie\u017c\u0105cego cyklu.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"ozhidaemye-rezultaty\">Oczekiwane wyniki<\/h3>\n<p><\/p>\n<p>Poniewa\u017c obaj kandydaci w taki czy inny spos\u00f3b tworz\u0105 archiwa, mo\u017cna jako punkt odniesienia wykorzysta\u0107 zwyk\u0142y tar.<\/p>\n<p><\/p>\n<p>Dodatkowo ocenimy, jak dobrze optymalizowane jest przechowywanie danych na serwerze storage poprzez tworzenie kopii zapasowych, kt\u00f3re zawieraj\u0105 jedynie r\u00f3\u017cnic\u0119 pomi\u0119dzy pe\u0142n\u0105 kopi\u0105 a aktualnym stanem plik\u00f3w lub pomi\u0119dzy przesz\u0142ymi a bie\u017c\u0105cymi archiwami (inkrementalne, dekrementalne itp.).<\/p>\n<p><\/p>\n<p><strong>Zachowanie przy tworzeniu kopii zapasowych:<\/strong><\/p>\n<p><\/p>\n<ol>\n<li>Relatywnie niewielka liczba plik\u00f3w na serwerze przechowywania kopii zapasowych (w por\u00f3wnaniu z liczb\u0105 kopii zapasowych lub ilo\u015bci\u0105 danych w GB), ale o dostatecznie du\u017cym rozmiarze (dziesi\u0105tki-setki megabajt\u00f3w).<\/li>\n<li>Rozmiar repozytorium b\u0119dzie obejmowa\u0142 jedynie zmiany \u2014 duplikaty nie b\u0119d\u0105 przechowywane, w ten spos\u00f3b rozmiar repozytorium b\u0119dzie mniejszy, ni\u017c w przypadku oprogramowania opartego na rsync.<\/li>\n<li>Oczekiwane jest du\u017ce obci\u0105\u017cenie procesora przy u\u017cyciu kompresji i\/lub szyfrowania, a tak\u017ce prawdopodobnie do\u015b\u0107 du\u017ce obci\u0105\u017cenie sieci i subsystemu dyskowego, je\u015bli proces archiwizacji i\/lub szyfrowania b\u0119dzie dzia\u0142a\u0142 na serwerze przechowywania kopii zapasowych.<\/li>\n<\/ol>\n<p><\/p>\n<p>Jako warto\u015b\u0107 odniesienia uruchomimy nast\u0119puj\u0105ce polecenie:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cd \/src\/dir; tar -cf - * | ssh backup_server \"cat &gt; \/backup\/dir\/archive.tar\"<\/code><\/pre>\n<p><\/p>\n<p>Wyniki wykonania s\u0105 nast\u0119puj\u0105ce:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/jn\/c5\/he\/jnc5heftan2gc8qmkgrb_vgyecy.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/def0d3a5f68b9ca399915fcfb408ee02.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas wykonania: 3m12s. Wida\u0107, \u017ce pr\u0119dko\u015b\u0107 utkn\u0119\u0142a na subsystemie dyskowym serwera przechowywania kopii zapasowych, jak w przyk\u0142adzie z <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">rsync<\/a><\/noindex>. Tylko nieco szybciej, poniewa\u017c zapis odbywa si\u0119 do jednego pliku.<\/p>\n<p><\/p>\n<p>R\u00f3wnie\u017c w celu oceny kompresji uruchomimy ten sam wariant, ale w\u0142\u0105czymy kompresj\u0119 po stronie serwera tworzenia kopii zapasowych:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cd \/src\/dir; tar -cf - * | ssh backup_server \"gzip &gt; \/backup\/dir\/archive.tgz\"<\/code><\/pre>\n<p><\/p>\n<p>Wyniki s\u0105 takie:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/dj\/ha\/tt\/djhattgl3zvdm4qolmv6hr1-0fe.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/4651897ad58f0fc3881845b61239c4dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas wykonania: 10m11s. Najprawdopodobniej w\u0105skie gard\u0142o to jednow\u0105tkowy kompresor po stronie odbieraj\u0105cej.<\/p>\n<p><\/p>\n<p>Ta sama komenda, ale z przeniesieniem kompresji na serwer z danymi \u017ar\u00f3d\u0142owymi w celu sprawdzenia hipotezy, \u017ce w\u0105skim gard\u0142em jest jednow\u0105tkowy kompresor.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cd \/src\/dir; tar -czf - * | ssh backup_server \"cat &gt; \/backup\/dir\/archive.tgz\"<\/code><\/pre>\n<p><\/p>\n<p>Wysz\u0142o tak:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/wy\/fz\/5z\/wyfz5zmwsx6_7zcwv0x3fkncrlk.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/f4805e774253d67bb6773647b32d8042.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas wykonania wyni\u00f3s\u0142 9m37s. Wyra\u017anie wida\u0107 obci\u0105\u017cenie jednego rdzenia przez kompresor, poniewa\u017c pr\u0119dko\u015b\u0107 przesy\u0142ania w sieci oraz obci\u0105\u017cenie systemu dyskowego \u017ar\u00f3d\u0142a s\u0105 podobne.<\/p>\n<p><\/p>\n<p>Do oceny szyfrowania mo\u017cna u\u017cy\u0107 openssl lub gpg, dodaj\u0105c dodatkow\u0105 komend\u0119 <code>openssl<\/code> lub <code>gpg<\/code> w pipe. Dla orientacji b\u0119dzie taka komenda:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">cd \/src\/dir; tar -cf - * | ssh backup_server \"gzip | openssl enc -e -aes256 -pass pass:somepassword -out \/backup\/dir\/archive.tgz.enc\"<\/code><\/pre>\n<p><\/p>\n<p>Wyniki wysz\u0142y takie:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/f4\/jt\/qt\/f4jtqtaseg-su6kqe1fypvpjftc.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/ebb4b63609a9f21ea275436db79af5f6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas wykonania wyni\u00f3s\u0142 10m30s, poniewa\u017c uruchomiono 2 procesy po stronie odbiorczej \u2014 w\u0105skim gard\u0142em zn\u00f3w by\u0142 jednow\u0105tkowy kompresor, a tak\u017ce niewielkie koszty dodatkowe na szyfrowanie.<\/p>\n<p><\/p>\n<p><strong>UPD:<\/strong> Na pro\u015bb\u0119 bliznezz dodaj\u0119 testy z pigz. Je\u015bli u\u017cywa\u0107 tylko kompresora \u2014 uda\u0142o si\u0119 to zrobi\u0107 w 6m30s, je\u015bli dodatkowo doda si\u0119 szyfrowanie \u2014 oko\u0142o 7m. Spadek na dolnym wykresie \u2014 niewyczyszczona pami\u0119\u0107 podr\u0119czna dysku:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/yh\/ga\/no\/yhganobnez0czjpjku92w934wkk.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/eae1f159265319ed1406bd673e56f36c.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<h3 id=\"testirovanie-duplicity\">Testowanie duplicity<\/h3>\n<p><\/p>\n<p>Duplicity \u2014 oprogramowanie w Pythonie do tworzenia kopii zapasowych poprzez tworzenie zaszyfrowanych archiw\u00f3w w formacie tar.<\/p>\n<p><\/p>\n<p>Dla archiw\u00f3w inkrementalnych u\u017cywa si\u0119 librsync, wi\u0119c mo\u017cna oczekiwa\u0107 zachowania opisanego w <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">poprzedniej notatce z cyklu<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Kopie zapasowe mog\u0105 by\u0107 szyfrowane i podpisywane za pomoc\u0105 gnupg, co jest istotne przy korzystaniu z r\u00f3\u017cnych dostawc\u00f3w do przechowywania kopii zapasowych (s3, backblaze, gdrive itp.)<\/p>\n<p><\/p>\n<p>Zobaczymy, jakie b\u0119d\u0105 wyniki:<\/p>\n<p>\n<b class=\"spoiler_title\">Oto jakie wyniki uzyskano przy uruchomieniu bez szyfrowania<\/b><\/p>\n<p>spojler<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/io\/3q\/zn\/io3qznlgqh81dzihfftyvpfnq-c.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/c0a848d7ba6667c2c38c8d3b47fd7e2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy ka\u017cdego testu:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>16m33s<br \/>\n17m20s<br \/>\n16m30s<\/p>\n<p>8m29s<br \/>\n9m3s<br \/>\n8m45s<\/p>\n<p>5m21s<br \/>\n6m04s<br \/>\n5m53s<\/p>\n<p><\/p>\n<p>A oto wyniki przy w\u0142\u0105czeniu szyfrowania gnupg, z rozmiarem klucza 2048 bit\u00f3w:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/lm\/jn\/kp\/lmjnkp8vgptndap57epuiodtn6m.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/6e24001f12dcd70e733d36611432b824.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy na tych samych danych ze szyfrowaniem:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>17m22s<br \/>\n17m32s<br \/>\n17m28s<\/p>\n<p>8m52s<br \/>\n9m13s<br \/>\n9m3s<\/p>\n<p>5m48s<br \/>\n5m40s<br \/>\n5m30s<\/p>\n<p><\/p>\n<p>Zosta\u0142 okre\u015blony rozmiar bloku \u2014 512 megabajt\u00f3w, co wyra\u017anie wida\u0107 na wykresach; obci\u0105\u017cenie procesora rzeczywi\u015bcie utrzymywa\u0142o si\u0119 na poziomie 50%, wi\u0119c program wykorzystuje nie wi\u0119cej ni\u017c jeden rdze\u0144 procesora.<\/p>\n<p><\/p>\n<p>Wida\u0107 r\u00f3wnie\u017c dobrze zasad\u0119 dzia\u0142ania programu: wzi\u0119to kawa\u0142ek danych, skompresowano go, wys\u0142ano na serwer przechowywania kopii zapasowych, kt\u00f3ry mo\u017ce by\u0107 do\u015b\u0107 wolny.<br \/>\nKolejn\u0105 cech\u0105 jest przewidywalny czas dzia\u0142ania programu, kt\u00f3ry zale\u017cy tylko od rozmiaru zmienionych danych.<\/p>\n<p><\/p>\n<p>W\u0142\u0105czenie szyfrowania nie zwi\u0119kszy\u0142o znacznie czasu dzia\u0142ania programu, ale podnios\u0142o obci\u0105\u017cenie procesora o oko\u0142o 10%, co mo\u017ce by\u0107 ca\u0142kiem mi\u0142ym bonusem.<\/p>\n<p><\/p>\n<p>Niestety, ten program nie by\u0142 w stanie prawid\u0142owo wykry\u0107 sytuacji zwi\u0105zanej z zmian\u0105 nazwy katalogu, wi\u0119c wynikowy rozmiar repozytorium okaza\u0142 si\u0119 r\u00f3wny rozmiarowi zmian (tj. wszystkie 18 GB), ale mo\u017cliwo\u015b\u0107 korzystania z niezaufanego serwera do tworzenia kopii zapasowych zdecydowanie przewa\u017ca nad takim zachowaniem.<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-duplicati\">Testowanie duplicati<\/h3>\n<p><\/p>\n<p>Oprogramowanie to zosta\u0142o napisane w C#, uruchamiane jest przy u\u017cyciu zestawu bibliotek Mono. Oferuje zar\u00f3wno GUI, jak i wersj\u0119 CLI.<\/p>\n<p><\/p>\n<p>Przybli\u017cony wykaz g\u0142\u00f3wnych mo\u017cliwo\u015bci jest zbli\u017cony do duplicity, w tym r\u00f3\u017cnych dostawc\u00f3w do przechowywania kopii zapasowych; jednak w odr\u00f3\u017cnieniu od duplicity, wi\u0119kszo\u015b\u0107 funkcji jest dost\u0119pna bez zewn\u0119trznych narz\u0119dzi. To, czy to zaleta czy wada \u2014 zale\u017cy od konkretnego przypadku, ale dla nowicjuszy prawdopodobnie \u0142atwiej jest mie\u0107 przed oczami list\u0119 wszystkich mo\u017cliwo\u015bci, zamiast instalowa\u0107 pakiety Pythona, jak w przypadku duplicity.<\/p>\n<p><\/p>\n<p>Jeszcze jeden drobny szczeg\u00f3\u0142 \u2014 program aktywnie zapisuje lokaln\u0105 baz\u0119 sqlite w imieniu u\u017cytkownika, kt\u00f3ry uruchamia tworzenie kopii zapasowych, dlatego nale\u017cy dodatkowo monitorowa\u0107 poprawne wskazanie potrzebnej bazy przy ka\u017cdym uruchomieniu procesu korzystaj\u0105c z CLI. Przy pracy przez GUI lub WEBGUI szczeg\u00f3\u0142y b\u0119d\u0105 ukryte przed u\u017cytkownikiem.<\/p>\n<p>\n<b class=\"spoiler_title\">Zobaczmy, jakie wyniki mo\u017ce da\u0107 to rozwi\u0105zanie:<\/b><\/p>\n<p>Je\u015bli wy\u0142\u0105czy\u0107 szyfrowanie (chocia\u017c WEBGUI nie zaleca tego), wyniki s\u0105 nast\u0119puj\u0105ce:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/67\/bc\/n3\/67bcn3ynbvoxc-twrimiqznenzi.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/e75696cd153f6d36b33dbabe8315b3b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>20m43s<br \/>\n20m13s<br \/>\n20m28s<\/p>\n<p>5m21s<br \/>\n5m40s<br \/>\n5m35s<\/p>\n<p>7m36s<br \/>\n7m54s<br \/>\n7m49s<\/p>\n<p><\/p>\n<p>Z w\u0142\u0105czonym szyfrowaniem, u\u017cywaj\u0105c aes, wyniki s\u0105 takie:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/pq\/fr\/ws\/pqfrwsizdrzsksafwv-bv2892gg.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/e52f70d1ac30b960a3f65b2da37c1a5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Czas pracy:<\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>29m9s<br \/>\n30m1s<br \/>\n29m54s<\/p>\n<p>5m29s<br \/>\n6m2s<br \/>\n5m54s<\/p>\n<p>8m44s<br \/>\n9m12s<br \/>\n9m1s<\/p>\n<p><\/p>\n<p>A je\u015bli u\u017cy\u0107 zewn\u0119trznego programu gnupg, wyniki s\u0105 takie:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/z1\/oo\/bq\/z1oobq9gf0-x9nb-i3seuzz5-qq.png\"><img decoding=\"async\" alt=\"Kopia zapasowa, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati\" src=\"\/wp-content\/uploads\/2019\/06\/e63aa4d6764bee72bb8c0bd93c3c78c3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Uruchomienie 1<br \/>\nUruchomienie 2<br \/>\nUruchomienie 3<\/p>\n<p>26m6s<br \/>\n26m35s<br \/>\n26m17s<\/p>\n<p>5m20s<br \/>\n5m48s<br \/>\n5m40s<\/p>\n<p>8m12s<br \/>\n8m42s<br \/>\n8m15s<\/p>\n<p><\/p>\n<p>Jak wida\u0107 \u2014 program potrafi dzia\u0142a\u0107 w wielu w\u0105tkach, ale nie czyni go to bardziej wydajnym rozwi\u0105zaniem, a je\u015bli por\u00f3wnamy czas dzia\u0142ania szyfrowania \u2014 uruchomienie zewn\u0119trznego programu<br \/>\nokaza\u0142o si\u0119 szybsze ni\u017c zastosowanie biblioteki z zestawu Mono. Mo\u017ce to by\u0107 zwi\u0105zane z tym, \u017ce zewn\u0119trzny program jest lepiej zoptymalizowany.<\/p>\n<p><\/p>\n<p>Przyjemnym aspektem jest r\u00f3wnie\u017c to, \u017ce rozmiar repozytorium wynosi dok\u0142adnie tyle, ile rzeczywi\u015bcie zmienionych danych, tzn. duplicati wykry\u0142 zmian\u0119 nazwy katalogu i w\u0142a\u015bciwie to obs\u0142u\u017cy\u0142. Mo\u017cna to zobaczy\u0107 podczas przeprowadzania drugiego testu.<\/p>\n<p><\/p>\n<p>Og\u00f3lnie, mam pozytywne wra\u017cenia z programu, w tym odpowiedni\u0105 przyjazno\u015b\u0107 dla nowicjuszy.<\/p>\n<p><\/p>\n<h3 id=\"rezultaty\">Wyniki<\/h3>\n<p><\/p>\n<p>Obaj kandydaci dzia\u0142ali do\u015b\u0107 wolno, ale w por\u00f3wnaniu do standardowego tar, jest post\u0119p, przynajmniej u duplicati. Cena tego post\u0119pu jest r\u00f3wnie\u017c wyra\u017ana \u2014 zauwa\u017calne obci\u0105\u017cenie<br \/>\nprocesora. Og\u00f3lnie nie ma \u017cadnych szczeg\u00f3lnych odchyle\u0144 w prognozowaniu wynik\u00f3w.<\/p>\n<p><\/p>\n<h3 id=\"vyvody\">Wnioski<\/h3>\n<p><\/p>\n<p>Je\u015bli nie ma potrzeby si\u0119 spieszy\u0107, a tak\u017ce jest zapas mocy procesora \u2014 nada si\u0119 ka\u017cde z rozwa\u017canych rozwi\u0105za\u0144, w ka\u017cdym razie wykonano wystarczaj\u0105co du\u017c\u0105 prac\u0119, kt\u00f3rej nie warto powtarza\u0107 pisz\u0105c dodatkowe skrypty na bazie tar. Posiadanie szyfrowania jest bardzo potrzebnym atutem, je\u015bli serwer do przechowywania kopii zapasowych nie mo\u017ce by\u0107 ca\u0142kowicie zaufany.<\/p>\n<p><\/p>\n<p>Por\u00f3wnuj\u0105c z rozwi\u0105zaniami opartymi na <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">rsync<\/a><\/noindex> \u2014 wydajno\u015b\u0107 mo\u017ce by\u0107 gorsza kilkukrotnie, mimo \u017ce czysty tar dzia\u0142a\u0142 szybciej od rsync o 20-30%.<br \/>\nOszcz\u0119dno\u015b\u0107 na rozmiarze repozytorium wyst\u0119puje tylko u duplicati.<\/p>\n<p><\/p>\n<h3 id=\"anons\">Og\u0142oszenie<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449282\/\">Kopie zapasowe, cz\u0119\u015b\u0107 1: Po co s\u0105 kopie zapasowe, przegl\u0105d metod, technologii<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">Kopie zapasowe, cz\u0119\u015b\u0107 2: Przegl\u0105d i testowanie narz\u0119dzi do tworzenia kopii zapasowych opartych na rsync<\/a><\/noindex><br \/>\nKopie zapasowe, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati, deja dup<br \/>\nKopia zapasowa, cz\u0119\u015b\u0107 4: Przegl\u0105d i testowanie zbackup, restic, borgbackup<br \/>\nKopie zapasowe, cz\u0119\u015b\u0107 5: Testowanie bacula i veeam backup for linux<br \/>\nKopie zapasowe, cz\u0119\u015b\u0107 6: Por\u00f3wnanie narz\u0119dzi do tworzenia kopii zapasowych<br \/>\nKopie zapasowe, cz\u0119\u015b\u0107 7: Wnioski<\/p>\n<p><\/p>\n<p><u>Autor publikacji:<\/u> Pawe\u0142 Demkiewicz<\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/454420\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0434\u0430\u043d\u043d\u043e\u0439 \u0437\u0430\u043c\u0435\u0442\u043a\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u044b \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0443\u0442\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0430\u0440\u0445\u0438\u0432\u043e\u0432 \u043d\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435. \u0418\u0437 \u0442\u0435\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u2014 duplicity (\u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0435\u0441\u0442\u044c \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0432 \u0432\u0438\u0434\u0435 deja dup) \u0438 duplicati. \u0415\u0449\u0435 \u043e\u0434\u043d\u043e \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u0438\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u2014 dar, \u043d\u043e \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0443 \u043d\u0435\u0433\u043e \u0438\u043c\u0435\u0435\u0442\u0441\u044f \u0432\u0435\u0441\u044c\u043c\u0430 \u043e\u0431\u0448\u0438\u0440\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u043e\u043f\u0446\u0438\u0439 \u2014 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26307,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-34954","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0434\u0430\u043d\u043d\u043e\u0439.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u044c 3: \u041e\u0431\u0437\u043e\u0440 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 duplicity, duplicati | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0434\u0430\u043d\u043d\u043e\u0439.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:01:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:01:30+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Kopie zapasowe, cz\u0119\u015b\u0107 3: Przegl\u0105d i testowanie duplicity, duplicati | ProHoster","description":"W przedstawionej.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0447\u0430\u0441\u0442\u044c 3: \u041e\u0431\u0437\u043e\u0440 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 duplicity, duplicati | ProHoster","og:description":"\u0412 \u0434\u0430\u043d\u043d\u043e\u0439.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:01:30+00:00","article:modified_time":"2019-10-31T19:01:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"34954","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 21:15:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:03:10","updated":"2026-01-21 21:15:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/34954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=34954"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/34954\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/26307"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=34954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=34954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=34954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}