Backup dei dati tra i server Istruzione | INTROSERV
EUR
european

EUR

usa

USD

Italy It
Ex. VAT Ex. VAT 0%

Backup dei dati tra i server

Questa guida spiega come copiare e creare backup dei dati tra server Linux utilizzando rsync, nonché come eseguire la clonazione a basso livello dei dischi con dd.

Prima di iniziare

I comandi descritti in questa guida vengono eseguiti sul server di origine, ovvero il server da cui vengono copiati i dati. Il server di destinazione deve essere accessibile tramite SSH e l'utente specificato nel comando deve avere accesso in lettura al percorso di origine e accesso in scrittura al percorso di destinazione.

Per verificare l'accesso SSH al server di destinazione prima di eseguire un backup:

ssh user@destination_host

Sostituire user con il nome utente remoto e destination_host con l'indirizzo IP o il nome host del server di destinazione.

Info

Per i backup automatizzati o pianificati, configurare l'autenticazione SSH tramite chiavi invece di utilizzare le password.

Copiare una directory su un server remoto

Si noti che la barra finale nel percorso di origine influisce sul comportamento di rsync: /source/ copia il contenuto della directory, mentre /source copia la directory stessa.

Utilizzare sempre --dry-run prima di eseguire comandi con --delete per evitare perdite accidentali di dati. Per visualizzare in anteprima ciò che verrà trasferito senza apportare modifiche:

rsync -a --delete --dry-run -e ssh /path/to/source/ user@destination_host:/path/to/backup/

Dopo aver verificato l'output, eseguire lo stesso comando senza --dry-run. Aggiungere -P per consentire la ripresa di un trasferimento interrotto e visualizzare l'avanzamento:

rsync -a --delete -e ssh -P /path/to/source/ user@destination_host:/path/to/backup/

L'opzione -a preserva permessi, timestamp e collegamenti simbolici. L'opzione --delete garantisce che la destinazione sia un mirror esatto dell'origine rimuovendo i file che non esistono nell'origine. Aggiungere -v per visualizzare informazioni dettagliate.

Warning

L'opzione --delete rimuoverà dalla destinazione i file che non sono presenti nell'origine. Non utilizzarla se la destinazione contiene file che devono essere conservati indipendentemente.

Copiare la maggior parte dei file di sistema

Per copiare la maggior parte del filesystem escludendo le directory virtuali e temporanee:

rsync -aAXv --delete --one-file-system --numeric-ids \ --exclude={/dev/,/proc/,/sys/,/tmp/,/run/,/mnt/,/media/,/lost+found,/swapfi le} \ / user@destination_host:/path/to/backup/

Le opzioni utilizzate sono: -a preserva permessi, timestamp, collegamenti simbolici ed esegue la copia ricorsiva; -A preserva le ACL; -X preserva gli attributi estesi; -v mostra informazioni dettagliate. L'opzione -H per gli hard link viene omessa intenzionalmente: gli hard link di sistema non devono essere replicati in un backup remoto e la loro conservazione aumenta il tempo e la complessità del trasferimento. L'opzione --one-file-system impedisce a rsync di attraversare altri filesystem montati. L'opzione --numeric-ids preserva i valori UID e GID senza associarli ai nomi degli utenti, cosa importante quando i server di origine e destinazione hanno configurazioni utenti diverse.

La maggior parte dei percorsi esclusi utilizza una barra finale per escludere il contenuto della directory mantenendo la directory stessa. /lost+found non ha una barra finale perché deve essere esclusa l'intera directory e non solo il suo contenuto. La stessa regola della barra finale si applica al percorso di origine: /source/ copia il contenuto della directory, mentre /source copia la directory stessa.

Warning

Questo metodo non crea un'immagine di sistema avviabile e non deve essere utilizzato come sostituto di un backup completo del sistema. Per backup coerenti di sistemi attivi, prendere in considerazione l'arresto dei servizi critici o l'utilizzo di snapshot del filesystem, come gli snapshot LVM, prima di eseguire il comando.

Clonazione completa di una directory con rsync

Per eseguire una clonazione completa di un albero di directory preservando hard link, ACL e attributi estesi:

rsync -aAHXv /source/dir/ user@destination_host:/destination/dir/

Le opzioni utilizzate sono: -a preserva permessi, timestamp, collegamenti simbolici ed esegue la copia ricorsiva; -A preserva le ACL; -H preserva gli hard link, importante per una clonazione esatta della directory; -X preserva gli attributi estesi; -v mostra informazioni dettagliate.

Clonare un disco con dd

Per clonare un intero disco su un altro disco dello stesso server:

dd if=/dev/sdX of=/dev/sdY bs=1M conv=noerror,sync status=progress

Sostituire sdX con il disco di origine e sdY con il disco di destinazione. Le opzioni conv=noerror,sync consentono di continuare la copia dopo gli errori di lettura riempiendo i blocchi danneggiati con zeri. Se l'integrità dei dati è critica, omettere queste opzioni affinché dd si arresti al primo errore invece di sostituire silenziosamente i blocchi danneggiati con zeri.

Per clonare un disco su un server remoto tramite SSH:

dd if=/dev/sdX bs=1M status=progress | ssh user@destination_host 'dd of=/dev/sdY bs=1M'

La destinazione può essere anche un percorso di file anziché un dispositivo a blocchi.

Warning

dd scrive direttamente sul dispositivo o sul file di destinazione senza richiedere conferma. Controllare attentamente origine e destinazione prima di eseguire il comando. Sui sistemi attivi, se possibile, smontare tutte le partizioni del disco di origine oppure rimontarle in sola lettura. Per backup coerenti dei filesystem montati, utilizzare snapshot LVM oppure avviare il sistema da un ambiente di ripristino.

Verificare il backup

Dopo il trasferimento, collegarsi al server di destinazione e controllare le dimensioni del backup e la struttura di base:

ssh user@destination_host du -sh /path/to/backup/ ls /path/to/backup/

Per un controllo completo dell'integrità, eseguire rsync con --checksum e --dry-run. Questo confronta il contenuto dei file anziché i timestamp e segnala eventuali differenze:

rsync -av --checksum --dry-run /path/to/source/ user@destination_host:/path/to/backup/

Si noti che questa procedura può richiedere molto più tempo rispetto a una normale esecuzione di rsync su grandi quantità di dati.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA