{"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\/pt\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati","title":{"rendered":"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/5c043312994d60411dabba12b445a622.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Neste artigo, ser\u00e3o abordados os recursos de backup que realizam o armazenamento atrav\u00e9s da cria\u00e7\u00e3o de arquivos em um servidor de backup.<\/p>\n<p><\/p>\n<p>Entre aqueles que atendem aos requisitos est\u00e3o o duplicity (que possui uma interface agrad\u00e1vel chamada deja dup) e o duplicati.<\/p>\n<p><\/p>\n<p>Outro recurso de backup not\u00e1vel \u00e9 o dar, mas como ele possui uma lista extensa de op\u00e7\u00f5es \u2014 a metodologia de teste cobre no m\u00e1ximo 10% do que ele pode fazer \u2014 n\u00e3o o testaremos neste ciclo.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"ozhidaemye-rezultaty\">Resultados Esperados<\/h3>\n<p><\/p>\n<p>Uma vez que ambos os candidatos criam arquivos, o tar convencional pode ser usado como refer\u00eancia.<\/p>\n<p><\/p>\n<p>Adicionalmente, avaliaremos como o armazenamento de dados no servidor de backup \u00e9 otimizado, criando c\u00f3pias de seguran\u00e7a que cont\u00eam apenas a diferen\u00e7a entre a c\u00f3pia completa e o estado atual dos arquivos, ou entre arquivos de backup passados e atuais (incrementais, decrementais, etc.).<\/p>\n<p><\/p>\n<p><strong>Comportamento ao criar backups:<\/strong><\/p>\n<p><\/p>\n<ol>\n<li>Um n\u00famero relativamente pequeno de arquivos no servidor de backup (compar\u00e1vel ao n\u00famero de backups ou ao tamanho dos dados em GB), mas com um tamanho bastante grande (dezenas a centenas de megabytes).<\/li>\n<li>O tamanho do reposit\u00f3rio incluir\u00e1 apenas as altera\u00e7\u00f5es \u2014 duplicatas n\u00e3o ser\u00e3o armazenadas, portanto, o tamanho do reposit\u00f3rio ser\u00e1 menor do que ao usar software baseado em rsync.<\/li>\n<li>Esperamos uma grande carga no processador ao usar compress\u00e3o e\/ou criptografia, al\u00e9m de provavelmente uma carga consider\u00e1vel na rede e na subsistema de disco, caso o processo de arquivamento e\/ou criptografia ocorra no servidor de backup.<\/li>\n<\/ol>\n<p><\/p>\n<p>Como valor de refer\u00eancia, executaremos o seguinte comando:<\/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>Os resultados da execu\u00e7\u00e3o foram:<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/def0d3a5f68b9ca399915fcfb408ee02.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>O tempo de execu\u00e7\u00e3o foi de 3m12s. \u00c9 evidente que a velocidade foi limitada pela subsistema de disco do servidor de backup, assim como no exemplo com <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">rsync<\/a><\/noindex>. Apenas um pouco mais r\u00e1pido, pois a grava\u00e7\u00e3o se d\u00e1 em um \u00fanico arquivo.<\/p>\n<p><\/p>\n<p>Para avaliar a compress\u00e3o, tamb\u00e9m executaremos a mesma variante, mas ativaremos a compress\u00e3o no lado do servidor de backup:<\/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>Os resultados s\u00e3o os seguintes:<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/4651897ad58f0fc3881845b61239c4dd.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>O tempo de execu\u00e7\u00e3o foi de 10m11s. Provavelmente, o gargalo \u00e9 o compressor de um \u00fanico thread do lado receptor.<\/p>\n<p><\/p>\n<p>O mesmo comando, mas transferindo a compress\u00e3o para o servidor com os dados fonte, para verificar a hip\u00f3tese de que o gargalo \u00e9 o compressor de um \u00fanico thread.<\/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>O resultado foi o seguinte:<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/f4805e774253d67bb6773647b32d8042.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>O tempo de execu\u00e7\u00e3o foi de 9m37s. \u00c9 claramente vis\u00edvel a carga de um n\u00facleo pelo compressor, j\u00e1 que a velocidade de transfer\u00eancia pela rede e a carga no subsistema de discos fonte s\u00e3o semelhantes.<\/p>\n<p><\/p>\n<p>Para avaliar a criptografia, pode-se usar openssl ou gpg, conectando um comando adicional <code>openssl<\/code> ou <code>gpg<\/code> no pipe. Para refer\u00eancia, o comando seria assim:<\/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>Os resultados foram os seguintes:<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/ebb4b63609a9f21ea275436db79af5f6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>O tempo de execu\u00e7\u00e3o foi de 10m30s, pois 2 processos foram iniciados no lado receptor \u2014 o gargalo novamente \u00e9 o compressor de um \u00fanico thread, al\u00e9m de pequenas sobrecargas da criptografia.<\/p>\n<p><\/p>\n<p><strong>UPD:<\/strong> Atendendo ao pedido de bliznezz, estou adicionando testes com pigz. Se usar apenas o compressor, o tempo foi de 6m30s, e se adicionar a criptografia \u2014 aproximadamente 7m. A queda no gr\u00e1fico inferior \u00e9 o cache de disco n\u00e3o descarregado:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/yh\/ga\/no\/yhganobnez0czjpjku92w934wkk.png\"><img decoding=\"async\" alt=\"Backup, parte 3: Vis\u00e3o geral e teste do 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\">Teste de duplicity<\/h3>\n<p><\/p>\n<p>Duplicity \u00e9 um software em python para backup criando arquivos criptografados no formato tar.<\/p>\n<p><\/p>\n<p>Para arquivos incrementais, usa-se librsync, portanto, pode-se esperar o comportamento descrito na <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">nota anterior do ciclo<\/a><\/noindex>.<\/p>\n<p><\/p>\n<p>Os backups podem ser criptografados e assinados com gnupg, o que \u00e9 importante ao usar diferentes provedores para armazenamento de backups (s3, backblaze, gdrive, etc.)<\/p>\n<p><\/p>\n<p>Vamos ver quais ser\u00e3o os resultados:<\/p>\n<p>\n<b class=\"spoiler_title\">Os resultados obtidos ao executar sem criptografia<\/b><\/p>\n<p>spoiler<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/c0a848d7ba6667c2c38c8d3b47fd7e2a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Tempo de execu\u00e7\u00e3o de cada teste:<\/p>\n<p><\/p>\n<p>Execu\u00e7\u00e3o 1<br \/>\nExecu\u00e7\u00e3o 2<br \/>\nExecu\u00e7\u00e3o 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>E aqui est\u00e3o os resultados com a criptografia gnupg, com tamanho de chave de 2048 bits:<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habrastorage.org\/webt\/lm\/jn\/kp\/lmjnkp8vgptndap57epuiodtn6m.png\"><img decoding=\"async\" alt=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/6e24001f12dcd70e733d36611432b824.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Tempo de execu\u00e7\u00e3o com os mesmos dados, com criptografia:<\/p>\n<p><\/p>\n<p>Execu\u00e7\u00e3o 1<br \/>\nExecu\u00e7\u00e3o 2<br \/>\nExecu\u00e7\u00e3o 3<\/p>\n<p>17m22s<br \/>\n17m32s<br \/>\n17m28s<\/p>\n<p>8m52s<br \/>\n9m13s<br \/>\n9m3s<\/p>\n<p>5m48s<br \/>\n5m35s<br \/>\n5m30s<\/p>\n<p><\/p>\n<p>Um tamanho de bloco de 512 megabytes foi especificado, o que \u00e9 claramente vis\u00edvel nos gr\u00e1ficos; a carga da CPU manteve-se em cerca de 50%, o que significa que o programa n\u00e3o utiliza mais de um n\u00facleo de processador.<\/p>\n<p><\/p>\n<p>Tamb\u00e9m se v\u00ea bem o princ\u00edpio de funcionamento do programa: pegar um peda\u00e7o de dados, compact\u00e1-lo, envi\u00e1-lo para o servidor de backup, que pode ser consideravelmente lento.<br \/>\nOutra caracter\u00edstica \u00e9 o tempo de execu\u00e7\u00e3o previs\u00edvel do programa, que depende apenas do tamanho dos dados alterados.<\/p>\n<p><\/p>\n<p>A ativa\u00e7\u00e3o da criptografia n\u00e3o aumentou especialmente o tempo de execu\u00e7\u00e3o do programa, mas elevou a carga da CPU em cerca de 10%, o que pode ser um bom b\u00f4nus.<\/p>\n<p><\/p>\n<p>Infelizmente, este programa n\u00e3o conseguiu detectar corretamente a situa\u00e7\u00e3o de renomea\u00e7\u00e3o do diret\u00f3rio, e o tamanho resultante do reposit\u00f3rio foi igual ao tamanho das altera\u00e7\u00f5es (ou seja, todos os 18 GB), mas a possibilidade de usar um servidor n\u00e3o confi\u00e1vel para backup definitivamente supera esse comportamento.<\/p>\n<p><\/p>\n<h3 id=\"testirovanie-duplicati\">Teste do duplicati<\/h3>\n<p><\/p>\n<p>Este software \u00e9 escrito em C#, e \u00e9 executado utilizando uma cole\u00e7\u00e3o de bibliotecas do Mono. H\u00e1 uma vers\u00e3o GUI, assim como uma vers\u00e3o CLI.<\/p>\n<p><\/p>\n<p>A lista aproximada das principais funcionalidades \u00e9 semelhante \u00e0 do duplicity, incluindo diversos provedores para armazenamento de backups, no entanto, ao contr\u00e1rio do duplicity, a maioria das funcionalidades est\u00e1 dispon\u00edvel sem ferramentas externas. Se isso \u00e9 um ponto positivo ou negativo depende do caso espec\u00edfico, mas para iniciantes, provavelmente \u00e9 mais f\u00e1cil ter uma lista de todas as funcionalidades \u00e0 vista do que instalar pacotes para python, como \u00e9 o caso do duplicity.<\/p>\n<p><\/p>\n<p>Mais uma pequena nuance \u2014 o programa escreve ativamente um banco de dados sqlite local em nome do usu\u00e1rio que inicia o backup, portanto, \u00e9 necess\u00e1rio acompanhar a indica\u00e7\u00e3o correta do banco necess\u00e1rio a cada execu\u00e7\u00e3o do processo usando CLI. Ao operar pela GUI ou WEBGUI, os detalhes ser\u00e3o ocultados do usu\u00e1rio.<\/p>\n<p>\n<b class=\"spoiler_title\">Vamos ver quais indicadores esta solu\u00e7\u00e3o pode fornecer:<\/b><\/p>\n<p>Se a criptografia for desativada (embora a WEBGUI n\u00e3o recomende isso), os resultados s\u00e3o os seguintes:<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/e75696cd153f6d36b33dbabe8315b3b9.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Tempo de execu\u00e7\u00e3o:<\/p>\n<p><\/p>\n<p>Execu\u00e7\u00e3o 1<br \/>\nExecu\u00e7\u00e3o 2<br \/>\nExecu\u00e7\u00e3o 3<\/p>\n<p>20m43s<br \/>\n20m13s<br \/>\n20m28s<\/p>\n<p>5m21s<br \/>\n5m35s<br \/>\n3m33s<\/p>\n<p>7m36s<br \/>\n7m54s<br \/>\n7m49s<\/p>\n<p><\/p>\n<p>Com a criptografia ativada, utilizando aes, os resultados s\u00e3o:<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/e52f70d1ac30b960a3f65b2da37c1a5e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Tempo de execu\u00e7\u00e3o:<\/p>\n<p><\/p>\n<p>Execu\u00e7\u00e3o 1<br \/>\nExecu\u00e7\u00e3o 2<br \/>\nExecu\u00e7\u00e3o 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>E se utilizar o programa externo gnupg, os resultados s\u00e3o os seguintes:<\/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=\"Backup, parte 3: Vis\u00e3o geral e teste do duplicity, duplicati,\" src=\"\/wp-content\/uploads\/2019\/06\/e63aa4d6764bee72bb8c0bd93c3c78c3.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><\/p>\n<p>Execu\u00e7\u00e3o 1<br \/>\nExecu\u00e7\u00e3o 2<br \/>\nExecu\u00e7\u00e3o 3<\/p>\n<p>26m6s<br \/>\n26m35s<br \/>\n26m17s<\/p>\n<p>5m20s<br \/>\n5m48s<br \/>\n5m35s<\/p>\n<p>8m12s<br \/>\n8m42s<br \/>\n8m15s<\/p>\n<p><\/p>\n<p>Como pode ser visto, o programa consegue operar em m\u00faltiplos threads, mas n\u00e3o se torna uma solu\u00e7\u00e3o mais eficiente, e se compararmos a opera\u00e7\u00e3o da criptografia \u2014 a execu\u00e7\u00e3o do programa externo<br \/>\nresultou ser mais r\u00e1pida do que a aplica\u00e7\u00e3o da biblioteca do conjunto Mono. Provavelmente, isso se deve ao fato de que o programa externo \u00e9 mais otimizado.<\/p>\n<p><\/p>\n<p>Um aspecto positivo foi que o tamanho do reposit\u00f3rio ocupou exatamente o que realmente foi alterado, ou seja, o Duplicati detectou a renomea\u00e7\u00e3o do diret\u00f3rio e tratou corretamente a situa\u00e7\u00e3o. Isso pode ser visto na execu\u00e7\u00e3o do segundo teste.<\/p>\n<p><\/p>\n<p>De modo geral, as impress\u00f5es sobre o programa s\u00e3o bastante positivas, incluindo uma amigabilidade suficiente para iniciantes.<\/p>\n<p><\/p>\n<h3 id=\"rezultaty\">Resultados<\/h3>\n<p><\/p>\n<p>Ambos os candidatos trabalharam de forma relativamente lenta, mas, em compara\u00e7\u00e3o com o tar convencional, h\u00e1 progresso, pelo menos no caso do Duplicati. O pre\u00e7o desse progresso tamb\u00e9m \u00e9 claro \u2014 uma carga not\u00e1vel<br \/>\nno processador. No geral, n\u00e3o h\u00e1 desvios especiais na previs\u00e3o dos resultados.<\/p>\n<p><\/p>\n<h3 id=\"vyvody\">Como resultado, obtemos um servi\u00e7o de \"monitoramento como servi\u00e7o\", automatizado na linha de produ\u00e7\u00e3o de integra\u00e7\u00e3o cont\u00ednua. O desenvolvedor ou testador precisa apenas definir a lista de m\u00e9tricas em um arquivo JSON, e tudo o mais acontece automaticamente. Obtemos um controle de qualidade transparente dos lan\u00e7amentos: todas as notifica\u00e7\u00f5es sobre desempenho, consumo de recursos ou regress\u00f5es arquitet\u00f4nicas.<\/h3>\n<p><\/p>\n<p>Se n\u00e3o houver pressa, e se houver capacidade no processador \u2014 qualquer uma das solu\u00e7\u00f5es consideradas ser\u00e1 adequada. De qualquer forma, foi feito um trabalho consider\u00e1vel que n\u00e3o vale a pena repetir escrevendo scripts de envolvimento sobre o tar. A presen\u00e7a de criptografia \u00e9 uma caracter\u00edstica muito necess\u00e1ria se o servidor para armazenamento de backups n\u00e3o puder ser totalmente confi\u00e1vel.<\/p>\n<p><\/p>\n<p>Se comparado a solu\u00e7\u00f5es baseadas <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">rsync<\/a><\/noindex> \u2014 o desempenho pode ser v\u00e1rias vezes pior, embora o tar puro tenha funcionado mais r\u00e1pido que o rsync em 20-30%.<br \/>\nH\u00e1 economia no tamanho do reposit\u00f3rio, mas apenas no Duplicati.<\/p>\n<p><\/p>\n<h3 id=\"anons\">An\u00fancio<\/h3>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/449282\/\">Backup, parte 1: Por que o backup \u00e9 necess\u00e1rio, vis\u00e3o geral dos m\u00e9todos e tecnologias,<\/a><\/noindex><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/452630\/\">Backup, parte 2: Vis\u00e3o geral e teste de ferramentas de backup baseadas em rsync<\/a><\/noindex><br \/>\nBackup, parte 3: Revis\u00e3o e teste do Duplicity, Duplicati, Deja Dup<br \/>\nBackup, parte 4: Vis\u00e3o geral e teste do zbackup, restic, borgbackup,<br \/>\nBackup, parte 5: Teste do bacula e veeam backup for linux<br \/>\nBackup, Parte 6: Compara\u00e7\u00e3o de ferramentas de backup<br \/>\nBackup, parte 7: Conclus\u00f5es<\/p>\n<p><\/p>\n<p><u>Autor da publica\u00e7\u00e3o:<\/u> Pavel Demkovich<\/p>\n<p>Fonte: <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.3 - 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\/pt\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47Backup, parte 3: Revis\u00e3o e teste do Duplicity, Duplicati | ProHoster","description":"Neste.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/administrirovanie\/rezervnoe-kopirovanie-chast-3-obzor-i-testirovanie-duplicity-duplicati","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/34954","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=34954"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/34954\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/26307"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=34954"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=34954"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=34954"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}