<?xml version="1.0" encoding="utf-8"?>
<!--
SPDX-License-Identifier: CC-BY-SA-4.0
SPDX-FileCopyrightText: Michael Terry
-->
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" its:version="2.0" type="topic" style="task" id="restore-worst-case" xml:lang="deja-dup-uk">
<info>
  <desc>Що робити, якщо ви не можете відновити ваші файли</desc>
  <link type="guide" xref="index#restore"/>
  <credit type="author" its:translate="no">
    <name>Michael Terry</name>
  </credit>
  <license href="http://creativecommons.org/licenses/by-sa/4.0/"><p>ліцензії Creative Commons Attribution-Share Alike 4.0 Unported</p></license>

    <mal:credit xmlns:mal="http://projectmallard.org/1.0/" type="translator copyright">
      <mal:name>Юрій Чорноіван</mal:name>
      <mal:email>yurchor@ukr.net</mal:email>
      <mal:years>2020</mal:years>
    </mal:credit>
  </info>

<title>Коли усе йде не так</title>

<p>У <app>Déjà Dup</app> можуть бути вади. Програма може завершити роботу в аварійному режимі або повідомити про помилку, коли ви намагатиметеся відновити дані. Якщо вам дуже потрібні дані з резервної копії, вада у програмі є дуже прикрою перепоною. Вам варто скласти <link href="https://gitlab.gnome.org/World/deja-dup/-/issues/new">звіт про ваду</link>. Між тим, нижче наведено декілька підходів для того, щоб обійти проблеми у <app>Déjà Dup</app> і отримати ваші дані неушкодженими.</p>

<note><p>Наведені поради призначено для технічного грамотних користувачів. Якщо вам не вдається зрозуміти сенс вказаних дій, не вагайтеся і <link xref="support">просіть про допомогу</link>.</p></note>

<steps>
  <item><p>Відкрийте вікно програми <app>Термінал</app> натисканням комбінації клавіш <keyseq><key>Ctrl</key><key>Alt</key><key>T</key></keyseq>.</p></item>
  <item><p>Створіть каталог, до якого має бути збережено відновлені файли. У цьому підручнику ми використовуватимемо каталог <file its:translate="no">/tmp/restore</file>:</p>
<screen its:translate="no">mkdir -p /tmp/restore</screen></item>
</steps>

<section id="duplicity">
<title>Відновлення за допомогою Duplicity</title>

<p>Припускаючи, що <app>Déjà Dup</app> просто не працює у вашому конкретному випадку, ми скористаємося інструментом командного рядка <app>duplicity</app>, яким <app>Déjà Dup</app> користується для виконання своїх завдань із резервного копіювання, для відновлення ваших файлів.</p>

<note style="advanced"><p>Якщо вам потрібні додаткові відомості щодо <app>duplicity</app>, окрім наведених у цьому підручнику, віддайте команду <cmd>man duplicity</cmd>.</p></note>

<p>Спершу ми спробуємо просте відновлення усіх ваших даних. Нехай ваші файли зберігаються на зовнішньому диску, який змонтовано як <file its:translate="no">/media/backup</file>, і ви зашифрували резервну копію. Спробуйте таку команду:</p>
<screen its:translate="no">duplicity --gio file:///media/backup /tmp/restore</screen>

<p>Якщо ви не шифрували дані резервної копії, додайте до команди <cmd its:translate="no">--no-encryption</cmd>.</p>

<section id="locations">
<title>Інші місця сховища резервного копіювання</title>
<p>Якщо резервну копію збережено на віддаленому або «хмарному» сервері, синтаксис команди <app>duplicity</app> буде відрізнятися від синтаксису для прикладу із зовнішнім диском, який наведено вище. Нижче наведено дані щодо того, як встановити з'єднання із вибраним вами місцем сховище резервних даних.</p>
<note><p>Не забудьте додати <cmd its:translate="no">--no-encryption</cmd> до усіх прикладів команд, якщо вашу резервну копію не зашифровано.</p></note>
<p>Якщо виявиться, що <app>duplicity</app> матиме проблеми зі з'єднанням з сервером, спробуйте отримати усі файли <app>duplicity</app> до теки на вашому комп'ютері і виконайте дії із простішого прикладу, який наведено вище.</p>
<terms>
  <item>
    <title>FTP</title>
    <p>Визначте адресу, порт, ім'я користувача та пароль для вашого сервера і замініть фрагменти <var>СЕРВЕР</var>, <var>ПОРТ</var>, <var>КОРИСТУВАЧ</var> і <var>ПАРОЛЬ</var> у наведеному ничже прикладі на відповідні значення.</p>
    <p>Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи <var>ТЕКА</var> на шлях до цієї теки.</p>
    <p>Якщо вами було вибрано варіант без входу за допомогою імені користувача, скористайтеся записом <var its:translate="no">anonymous</var> замість запису <var>КОРИСТУВАЧ</var> у наведених нижче командах.</p>
    <screen its:translate="no">
gvfs-mount ftp://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ТЕКА</var>
duplicity --gio ftp://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ТЕКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>SSH</title>
    <p>Визначте адресу, порт, ім'я користувача та пароль для вашого сервера і замініть фрагменти <var>СЕРВЕР</var>, <var>ПОРТ</var>, <var>КОРИСТУВАЧ</var> і <var>ПАРОЛЬ</var> у наведеному ничже прикладі на відповідні значення.</p>
    <p>Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи <var>ТЕКА</var> на шлях до цієї теки.</p>
    <screen its:translate="no">
gvfs-mount ssh://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ТЕКА</var>
duplicity --gio ssh://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ТЕКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>WebDAV</title>
    <p>Визначте адресу, порт, ім'я користувача та пароль для вашого сервера і замініть фрагменти <var>СЕРВЕР</var>, <var>ПОРТ</var>, <var>КОРИСТУВАЧ</var> і <var>ПАРОЛЬ</var> у наведеному ничже прикладі на відповідні значення.</p>
    <p>Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи <var>ТЕКА</var> на шлях до цієї теки.</p>
    <p>Якщо вами було вибрано захищене з'єднання (HTTPS) при створенні резервних копій, скористайтеся <var its:translate="no">davs://</var> замість <var its:translate="no">dav://</var> у наведеному нижче прикладі.</p>
    <screen its:translate="no">
gvfs-mount dav://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ТЕКА</var>
duplicity --gio dav://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>:<var its:translate="yes">ПОРТ</var>/<var its:translate="yes">ТЕКА</var> /tmp/restore</screen>
  </item>
  <item>
    <title>Спільні ресурси Windows</title>
    <p>Визначте адресу, ім'я користувача та пароль для вашого сервера і замініть фрагменти <var>СЕРВЕР</var>, <var>КОРИСТУВАЧ</var> і <var>ПАРОЛЬ</var> у наведеному ничже прикладі на відповідні значення.</p>
    <p>Ви могли вказати теку, до якої слід зберігати файли резервних копій. У наведеному нижче прикладі замініть усі записи <var>ТЕКА</var> на шлях до цієї теки.</p>
    <p>Якщо вами було вказано домен для вашого сервера Windows, додайте його на початку запису <var>КОРИСТУВАЧ</var> разом із крапкою з комою. Приклад: <var>домен;користувач</var>.</p>
    <screen its:translate="no">
gvfs-mount smb://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>/<var its:translate="yes">ТЕКА</var>
duplicity --gio smb://<var its:translate="yes">КОРИСТУВАЧ</var>@<var its:translate="yes">СЕРВЕР</var>/<var its:translate="yes">ТЕКА</var> /tmp/restore</screen>
  </item>
</terms>
</section>

</section>

<section id="by-hand">
<title>Відновлення вручну</title>

<p>Якщо навіть <app>duplicity</app> не зарадить вам, усе ще лишається трохи надії. Формат файлів резервних копій є складним — працювати з ним не просто. Втім, якщо ви не боїтеся роботи, варто спробувати.</p>

<p>Якщо для зберігання ваших резервних копій ви користувалися віддаленим або «хмарним» сервером, спочатку отримайте файли <app>duplicity</app> і збережіть їх до теки на вашому комп'ютері. Далі, увійдіть до цієї теки у терміналі.</p>

<p><app>Duplicity</app> зберігає ваші дані у малих фрагментах, які називаються томами. Деякі томи належать до періодичних «повних» або свіжих резервних копій, а інші є томами нарощувальних резервних копій. Починаючи з повного набору томів резервної копії у томі 1, вам слід відновити файли том за томом.</p>

<p>Якщо вашу резервну копію було зашифровано, спочатку вам слід розшифрувати том за допомогою команди <cmd its:translate="no">gpg</cmd>. Припустімо, ви маєте <file its:translate="no">duplicity-full.20110127T131352Z.vol1.difftar.gpg</file>:</p>
<screen its:translate="no">gpg --output duplicity-full.20110127T131352Z.vol1.difftar --decrypt duplicity-full.20110127T131352Z.vol1.difftar.gpg</screen>

<p>Або, щоб виконати усю роботу одразу (переконайтеся, що на диску достатньо місця!):</p>
<screen its:translate="no">gpg --multifile --decrypt duplicity-full.20110127T131352Z.*.difftar.gpg</screen>

<p>Тепер, у вас є або том <file its:translate="no">.difftar</file>, або том <file its:translate="no">.difftar.gz</file> (залежно від того, чи розшифровувалися дані). Скористайтеся <cmd its:translate="no">tar</cmd> із вашим варіантом тому для видобування файлів окремих латок:</p>
<screen its:translate="no">tar xf duplicity-full.20110127T131352Z.vol1.difftar</screen>

<p>Або знову, щоб виконати усе однією командою:</p>
<screen its:translate="no">for t in duplicity-full.20110127T131352Z.*.difftar; do tar xf $t; done</screen>

<p>Тепер файли латок зберігатимуться у теках <file its:translate="no">multivolume_snapshot</file> і <file its:translate="no">snapshot</file>. Кожен файл, дані якого зберігаються у декількох томах, потрапить до <file its:translate="no">multivolume_snapshot</file>. Припустімо, що резервна копія була у <file its:translate="no">/home/jane/essay.txt</file>:</p>
<screen its:translate="no">cd multivolume_snapshot/home/jane/essay.txt
cat * &gt; essay.txt</screen>

<p>Щоб відновити дані із нарощувальних резервних копій, скористайтеся <cmd its:translate="no">rdiff</cmd> для зшивання файлів. Див. <cmd its:translate="no">man rdiff</cmd>, щоб дізнатися більше про користування програмою.</p>

</section>

</page>
