|
Dimensione: 11210
Commento: +versioni_supportate; +revisione_pagina
|
← Versione 18 del 21/11/2025 18.13.20 ⇥
Dimensione: 11188
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:
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/
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
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/
