<?xml version="1.0" encoding="utf-8"?>
<page xmlns="http://projectmallard.org/1.0/" xmlns:its="http://www.w3.org/2005/11/its" its:version="1.0" type="topic" style="task" id="restore-worst-case" xml:lang="it">
<info>
  <desc>Cosa fare se non è possibile ripristinare i file</desc>
  <link type="guide" xref="index#restore"/>
</info>

<title>Quando tutti i tentativi falliscono</title>

<p><app>Déjà Dup</app> può non funzionare. Potrebbe bloccarsi o restituire degli errori durante il tentativo di ripristino. Quando è indispensabile recuperare i dati contenuti nei backup, l'ultima cosa che che si vorrebbe è di trovarsi davanti a un bug. Considerare l'ipotesi di <link href="https://launchpad.net/deja-dup/+filebug">segnalare il bug</link>, ma nel frattempo ecco alcuni modi per aggirare i comportamenti anomali di <app>Déjà Dup</app> e riottenete i propri dati.</p>

<note><p>Questa è una parte molto tecnica. Se qualcosa sembra senza senso, è possibile <link xref="support">chiedere aiuto</link>.</p></note>

<steps>
  <item><p>Aprire una finestra di <app>Terminale</app> premendo <keyseq><key>Ctrl</key><key>Alt</key><key>T</key></keyseq>.</p></item>
  <item><p>Creare la directory nella quale verranno posizionati i file ripristinati. Questa guida userà <file its:translate="no">/tmp/restore</file>:</p>
<screen its:translate="no">mkdir -p /tmp/restore</screen></item>
</steps>

<section id="duplicity">
<title>Ripristino con Duplicity</title>

<p>Partendo dal presupposto che <app>Déjà Dup</app> non sta funzionando correttamente, sarà necessario utilizzare lo strumento a riga di comando <app>duplicity</app> che viene utilizzato da <app>Déjà Dup</app> per eseguire i backup e ripristinare i dati.</p>

<note style="advanced"><p>Per maggiori informazioni su <app>duplicity</app> non presenti in questa guida, eseguire il comando <cmd>man duplicity</cmd>.</p></note>

<p>La prima cosa che si tenterà di fare sarà di ripristinare tutti i dati. Presupponendo che i file siano su un dispositivo esterno montato come <file its:translate="no">/media/backup</file>  e si scelga di eseguire un backup cifrato, provare:</p>
<screen its:translate="no">duplicity --gio file:///media/backup /tmp/restore</screen>

<p>Se non si vuole cifrare il backup, aggiungere <cmd its:translate="no">--no-encryption</cmd> al comando.</p>

<section id="locations">
<title>Altre posizioni di backup</title>
<p>Se è stato eseguito un backup su un server remoto o cloud, la sintassi da utilizzare con <app>duplicity</app> sarà diversa da quella descritta sopra utilizzata per un dispositivo esterno. Seguire le indicazioni riportate di seguito per sapere come connettersi alla posizione di backup scelta.</p>
<note><p>Ricordare di aggiungere <cmd its:translate="no">--no-encryption</cmd> a ogni comando di esempio se il backup non è cifrato.</p></note>
<p>Se <app>duplicity</app> ha problemi con la connessione al server, provare a scaricare tutti i file <app>duplicity</app> manualmente in una cartella locale e seguire il semplice esempio seguente.</p>
<terms>
  <item>
    <title>Amazon S3</title>
    <p>Cercare la chiave ID e la chiave segreta di accesso per Amazon S3 e sostituire le istanze di <var>ID</var> e <var>SEGRETO</var> nel seguente esempio con quei valori.</p>
    <p>È possibile specificare un cartella in cui collocare i file di backup. Nell'esempio seguente, sostituire ogni istanza di <var>CARTELLA</var> con quel percorso.</p>
    <screen its:translate="no">
export AWS_ACCESS_KEY_ID=<var its:translate="yes">ID</var>
export AWS_SECRET_ACCESS_KEY=<var its:translate="yes">SEGRETO</var>
duplicity s3+http://deja-dup-auto-<var its:translate="yes">E</var>/<var its:translate="yes">CARTELLA</var> /tmp/restore</screen>
  </item>
  <item>
    <title>Cloud Files di Rackspace</title>
    <p>Cercare in nome utente e la chiave API di accesso per Rackspace e sostituire le istanze di <var>NOME_UTENTE</var> e <var>CHIAVE</var> nel seguente esempio con quei valori.</p>
    <p>È possibile specificare un container in cui collocare i file di backup. Nell'esempio seguente, sostituire ogni istanza di <var>CONTAINER</var> con quel nome.</p>
    <screen its:translate="no">
export CLOUDFILES_USERNAME=<var its:translate="yes">NOME_UTENTE</var>
export CLOUDFILES_APIKEY=<var its:translate="yes">CHIAVE</var>
duplicity cf+http://<var its:translate="yes">CONTAINER</var> /tmp/restore</screen>
  </item>
  <item>
    <title>FTP</title>
    <p>Cercare indirizzo, porta, nome utente e password di accesso al server e sostituire le istanze di <var>SERVER</var>, <var>PORTA</var>, <var>NOME_UTENTE</var> e <var>PASSWORD</var> nel seguente esempio con quei valori.</p>
    <p>È possibile specificare un cartella in cui collocare i file di backup. Nell'esempio seguente, sostituire ogni istanza di <var>CARTELLA</var> con quel percorso.</p>
    <p>Se si sceglie di non effettuare l'accesso con un nome utente, usare nel seguente esempio <var its:translate="no">anonymous</var> come <var>NOME_UTENTE</var></p>
    <screen its:translate="no">
gvfs-mount ftp://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORTA</var>/<var its:translate="yes">CARTELLA</var>
duplicity --gio ftp://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORTA</var>/<var its:translate="yes">CARTELLA</var> /tmp/restore</screen>
  </item>
  <item>
    <title>SSH</title>
    <p>Cercare indirizzo, porta, nome utente e password di accesso al server e sostituire le istanze di <var>SERVER</var>, <var>PORTA</var>, <var>NOME_UTENTE</var> e <var>PASSWORD</var> nel seguente esempio con quei valori.</p>
    <p>È possibile specificare un cartella in cui collocare i file di backup. Nell'esempio seguente, sostituire ogni istanza di <var>CARTELLA</var> con quel percorso.</p>
    <screen its:translate="no">
gvfs-mount ssh://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORTA</var>/<var its:translate="yes">CARTELLA</var>
duplicity --gio ssh://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORTA</var>/<var its:translate="yes">CARTELLA</var> /tmp/restore</screen>
  </item>
  <item>
    <title>WebDAV</title>
    <p>Cercare indirizzo, porta, nome utente e password di accesso al server e sostituire le istanze di <var>SERVER</var>, <var>PORTA</var>, <var>NOME_UTENTE</var> e <var>PASSWORD</var> nel seguente esempio con quei valori.</p>
    <p>È possibile specificare un cartella in cui collocare i file di backup. Nell'esempio seguente, sostituire ogni istanza di <var>CARTELLA</var> con quel percorso.</p>
    <p>Se si sceglie di usare una connessione sicura (HTTPS) per il backup, usare nell'esempio seguente <var its:translate="no">davs://</var> al posto di <var its:translate="no">dav://</var>.</p>
    <screen its:translate="no">
gvfs-mount dav://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORTA</var>/<var its:translate="yes">CARTELLA</var>
duplicity --gio dav://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>:<var its:translate="yes">PORTA</var>/<var its:translate="yes">CARTELLA</var> /tmp/restore</screen>
  </item>
  <item>
    <title>Condivisione Windows</title>
    <p>Cercare indirizzo, nome utente e password di accesso al server e sostituire le istanze di <var>SERVER</var>, <var>NOME_UTENTE</var> e <var>PASSWORD</var> nel seguente esempio con quei valori.</p>
    <p>È possibile specificare un cartella in cui collocare i file di backup. Nell'esempio seguente, sostituire ogni istanza di <var>CARTELLA</var> con quel percorso.</p>
    <p>Se si specifica un dominio per il proprio server Windows, aggiungerlo all'inizio di <var>NOME_UTENTE</var> con un punto e virgola tra loro. Per esempio <var>dominio;nome_utente</var>.</p>
    <screen its:translate="no">
gvfs-mount smb://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>/<var its:translate="yes">CARTELLA</var>
duplicity --gio smb://<var its:translate="yes">NOME_UTENTE</var>@<var its:translate="yes">SERVER</var>/<var its:translate="yes">CARTELLA</var> /tmp/restore</screen>
  </item>
</terms>
</section>

</section>

<section id="by-hand">
<title>Ripristino manuale</title>

<p>Se anche <app>duplicity</app>non sta funzionando correttamente, ci può essere poca speranza. Il formato del file di backup è complesso e non è semplice manipolarlo. Ma se non si può fare a meno di recuperare i dati, vale la pena provare.</p>

<p>Se si utilizza un server remoto o cloud per archiviare i backup, prima di tutto scaricare tutti i file <app>duplicity</app> e posizionarli in una cartella sul proprio computer. Quindi accedere alla cartella utilizzando un terminale.</p>

<p><app>Duplicity</app> archivia i dati in piccole parti chiamate volumi. Alcuni volumi fanno parte di backup completi o del primo backup eseguito, altri fanno parte dei backup incrementali. Partendo dal primo dei volumi di un backup completo, sarà necessario ripristinare i file un volume per volta.</p>

<p>Se si hanno backup cifrati, prima si deve decifrare il volume con <cmd its:translate="no">gpg</cmd>. Supponiamo sia presente <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>Oppure tutti contemporaneamente (assicurarsi di avere abbastanza spazio.):</p>
<screen its:translate="no">gpg --multifile --decrypt duplicity-full.20110127T131352Z.*.difftar.gpg</screen>

<p>Ora si ha o un volume <file its:translate="no">.difftar</file> o un volume <file its:translate="no">.difftar.gz</file> (a seconda che fosse da decifrare o meno). Usare <cmd its:translate="no">tar</cmd> su ognuno dei file per estrarre il singolo file patch:</p>
<screen its:translate="no">tar xf duplicity-full.20110127T131352Z.vol1.difftar</screen>

<p>O ancora, tutti contemporaneamente:</p>
<screen its:translate="no">for t in duplicity-full.20110127T131352Z.*.difftar; do tar xf $t; done</screen>

<p>Ora i file patch saranno nelle cartelle <file its:translate="no">multivolume_snapshot</file> e<file its:translate="no">snapshot</file>. Ogni file che era diviso in più volumi ora sarà in <file its:translate="no">multivolume_snapshot</file>. Supponendo che sia stato eseguito il backup di <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>Per ripristinare i dati dai backup incrementali, usare <cmd its:translate="no">rdiff</cmd> per unire i file insieme. Consultare <cmd its:translate="no">man rdiff</cmd> per l'utilizzo.</p>

</section>

</page>
