Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "AmministrazioneSistema/BackupDelSistema/Rsnapshot"
Differenze tra le versioni 17 e 18
Versione 17 del 21/11/2025 12.07.36
Dimensione: 11210
Autore: ivantu
Commento: +versioni_supportate; +revisione_pagina
Versione 18 del 21/11/2025 18.13.20
Dimensione: 11188
Autore: ivantu
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 191: Linea 191:
CategoryAmministrazione CategoryDaRevisionare CategoryAmministrazione


Guida verificata con Ubuntu: 22.04 24.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

rsnapshot è un'applicazione in grado di effettuare il backup differenziale di porzioni di file system. Sfruttando rsync e gli hard link, è in grado di conservare diverse copie di backup, realizzate in diversi istanti di tempo, minimizzando la quantità di dati trasferiti e lo spazio occupato nel disco. Se utilizzato in concomitanza con ssh, può effettuare il backup anche di sistemi remoti.

Prerequisiti

rsnapshot deve essere avviato specificando il tipo di backup che si intende utilizzare.

Prima di procedere con la configurazione di rsnapshot, assicurarsi di:

  • Avere accesso con i privilegi di amministrazione, per modificare il file di configurazione principale e per l'esecuzione dei comandi.

  • Disporre di spazio su disco sufficiente nella directory di destinazione (rsnapshot_root) per ospitare i backup, tenendo conto delle direttive di retention impostate.

  • Se si intendono effettuare backup di sistemi remoti SSH deve essere configurato e funzionante tra i sistemi coinvolti, preferibilmente con autenticazione basata su chiavi per automatizzare le operazioni.

  • Comprendere le basi dell'utilizzo di un editor di testo e del terminale.

Installazione

Installare il pacchetto rsnapshot.

Configurazione

Per configurare rsnapshot è necessario aprire il file /etc/rsnapshot.conf con i privilegi di amministrazione e un editor di testo.

Definizione configurazione

Ogni riga del file di configurazione deve contenere elementi separati dal carattere Tab e non deve contenere spazi.

Non è quindi consigliabile copiare e incollare le seguenti istruzioni.

  • Direttiva rsnapshot_root: Specifica la cartella di destinazione principale per tutti i backup.

     rsnapshot_root /var/cache/rsnapshot/
  • Direttive retain: Definiscono le politiche di conservazione dei backup. Le copie vengono mantenute per periodi specifici.
    Supponendo di effettuare il backup quotidianamente e di voler conservare le seguenti copie:

    • backup giornaliero dei 7 giorni precedenti;
    • backup settimanale delle 4 settimane precedenti;
    • backup mensile dei 6 mesi precedenti.

    Le direttive di configurazione per questa pianificazione sono:

     retain daily 7
     retain weekly 4
     retain monthly 6
    È importante che i backup siano specificati in ordine decrescente di frequenza di esecuzione prevista (ovvero va specificato per primo il backup che sarà eseguito più spesso).
    • I nomi daily, weekly, monthly, ecc., indicano soltanto il nome delle cartelle di backup che rsnapshot crea quando viene eseguito con quel nome.
      È possibile assegnare qualsiasi nome alfanumerico (es.: alpha, beta, gamma).
      La reale frequenza di esecuzione dei backup non si programma in /etc/rsnapshot.conf ma dipende da come viene pianificata l'esecuzione dell'utility rsnapshot, per esempio con cron.

  • Direttive backup: Definiscono le cartelle locali o remote da sottoporre a backup.
    Per conservare i file contenuti nelle cartelle /home, /etc e /usr/local nella cartella localhost, aggiungere le seguenti istruzioni:

     backup /home/ localhost/
     backup /etc/ localhost/
     backup /usr/local/ localhost/

    Se si intende fare il backup di porzioni di file system di un sistema remoto, è possibile utilizzare il protocollo ssh, come nel seguente esempio:

     backup root@example.com:/home/ example.com/
  • Direttive exclude: Permettono di escludere file o cartelle specifiche dal backup tramite pattern matching.

Per escludere tutti i file .mp3 o il contenuto della cartella .cache dal backup, aggiungere le seguenti direttive:

 exclude *.mp3
 exclude .cache

Verifica della configurazione

Dopo aver apportato le modifiche, è possibile testare il file di configurazione digitando in un terminale il seguente comando:

rsnapshot configtest

Pianificazione delle operazioni con cron

Affinchè rsnaphost venga eseguito ad intervalli regolari, occorre configurare opportunamente cron.

Quello che segue è un esempio di configurazione:

  • backup giornaliero alle ore 00:00;

  • backup settimanale la domenica alle ore 6:00;

  • backup mensile ogni primo del mese alle 12:00.

Quella che segue è la pianificazione adatta al precedente esempio:

m h dom mon dow user    command
0 0  *   *   *  root    /usr/bin/rsnapshot daily
0 6  *   *   0  root    /usr/bin/rsnapshot weekly
0 12 1   *   *  root    /usr/bin/rsnapshot monthly

Avvio del programma

Per avviare il tipo di backup desiderato digitare in un terminale il relativo comando:

  • backup giornaliero:

     sudo rsnapshot daily
  • backup settimanale:

     sudo rsnapshot weekly
  • backup mensile:

     sudo rsnapshot monthly

Aggiungendo l'opzione -t al comando è possibile verificarne il corretto funzionamento. Quello che segue è un esempio:

sudo rsnapshot -t daily

Il risultato del precedente comando sarà simile al seguente:

echo 29059 > /var/run/rsnapshot.pid
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /home /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /etc /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 /usr/local /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/
/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded \
    --exclude=*.mp3 --rsh=/usr/bin/ssh root@example.com:/home \
    /var/cache/rsnapshot/daily.0/example.com
mkdir -m 0755 -p /var/cache/rsnapshot/daily.0/localhost/
mkdir -m 0755 -p /var/cache/rsnapshot/tmp/
cd /var/cache/rsnapshot/tmp/
/root/scripts/backupmysql.sh
cd /home/albe/
sync_if_different("/var/cache/rsnapshot/tmp/", \
    "/var/cache/rsnapshot/daily.0/localhost/mysql/")
touch /var/cache/rsnapshot/daily.0/

Ripristino da un backup

Il ripristino dei dati da un backup di rsnapshot è un'operazione semplice, in quanto i backup sono stored in una struttura di directory diretta e leggibile. Non è necessario utilizzare un comando specifico di rsnapshot per il ripristino, poiché i file sono accessibili direttamente.

Per ripristinare file o cartelle:

  1. Individuare la copia di backup desiderata: I backup sono memorizzati da rsnapshot_root nella directory specificata (ad esempio, /var/cache/rsnapshot/). All'interno di questa directory si trovano le cartelle di backup denominate in base alle direttive retain (es. daily.0, daily.1, weekly.0, ecc.).

    • daily.0 rappresenta il backup più recente (quello del giorno corrente).

    • daily.1 rappresenta il backup del giorno precedente, e così via.

    • weekly.0 rappresenta il backup settimanale più recente.

    Ad esempio, per accedere ai file del backup giornaliero più recente della cartella /home di localhost, il percorso sarà /var/cache/rsnapshot/daily.0/localhost/home/

  2. Copiare i file nella posizione originale o in una nuova destinazione: Utilizzare un comando di copia standard (come cp o rsync) per copiare i file dalla directory di backup alla posizione desiderata sul file system. Esempi

  3. Dopo il ripristino, è buona pratica verificare che i permessi e la proprietà dei file/cartelle che siano corretti, soprattutto se i dati vengono ripristinati con l'utente root. Per verificare, digitare in un terminale i seguenti comandi:

     sudo chown -R utente:gruppo /percorso/dei/file/ripristinati
     sudo chmod -R 755 /percorso/dei/file/ripristinati (o permessi appropriati)
    Questo metodo permette un controllo granulare su cosa e come ripristinare, sfruttando la natura diretta dei backup di rsnapshot.

Esempi

Ripristino di un file singolo

Mantenendo permessi e proprietà, digitare in un terminale il seguente comando:

sudo cp /var/cache/rsnapshot/daily.0/localhost/home/utente/documento.txt /home/utente/documento.txt

Ripristino di un'intera cartella

Quando si ripristina un'intera cartella, prestare attenzione a non sovrascrivere dati importanti esistenti, a meno che non sia l'intenzione. L'uso di rsync -a è spesso preferibile a cp -a perché rsync offre maggiore controllo e può essere interrotto e ripreso.

Mantenendo permessi e proprietà, digitare in un terminale il seguente comando:

sudo rsync -a /var/cache/rsnapshot/daily.0/localhost/home/utente/documenti/ /home/utente/documenti/

Ulteriori risorse


CategoryAmministrazione