Backup automatici · 4 min read · Jan 02, 2026
Backup automatici con rdiff-backup
Questo è un “copia e incolla” HowTo!
Il modo più semplice per seguire questo tutorial è utilizzare un client della riga di comando/client SSH (come
PuTTY
per Windows) e semplicemente copiare e incollare i comandi (eccetto dove devi fornire informazioni personali come indirizzi IP, nomi host, password,…). Questo aiuta a evitare errori di battitura.
Backup automatici con rdiff-backup
Versione 1.0
Autore: Falko Timme
Questo tutorial descrive come eseguire backup automatici del server con lo strumento rdiff-backup. rdiff-backup ti consente di eseguire backup su una rete utilizzando SSH in modo che il trasferimento dei dati sia crittografato. L’uso di SSH rende rdiff-backup molto sicuro perché nessuno può leggere i dati che vengono trasferiti. rdiff-backup esegue backup incrementali, risparmiando così larghezza di banda.
Puoi scoprire di più sulle funzionalità di rdiff-backup qui: http://www.nongnu.org/rdiff-backup/index.html
Il problema è che SSH richiede una password per accedere, il che non è buono se vuoi eseguire rdiff-backup come un lavoro cron. La necessità di una password richiede interazione umana, che non è ciò che vogliamo. Ad esempio, per eseguire il backup della directory /boot di server1.example.com, dovresti digitare rdiff-backup [email protected]::/boot boot sul tuo server di backup (in questo tutorial lo chiamiamo backup.example.com) che tenterebbe di salvare la directory /boot di server1.example.com nella directory boot di backup.example.com. Ora, ecco cosa succede:
| rdiff-backup@backup:~$ rdiff-backup [email protected]::/boot boot Password: ----------------------------------------------------------------- Abilità rilevate per il filesystem sorgente (solo lettura): Liste di controllo degli accessi Off Attributi estesi Off Fork di risorse in stile Mac OS X Off Informazioni del Finder di Mac OS X Off ----------------------------------------------------------------- Attenzione: la proprietà non può essere cambiata sul filesystem in boot/rdiff-backup-data ----------------------------------------------------------------- Abilità rilevate per il filesystem di destinazione (lettura/scrittura): Caratteri che necessitano di citazione '' Cambiamento di proprietà Off Hard linking On fsync() directory On Permessi di inc per directory On Liste di controllo degli accessi Off Attributi estesi Off Fork di risorse in stile Mac OS X Off Informazioni del Finder di Mac OS X Off ----------------------------------------------------------------- rdiff-backup@backup:~$ |
Vedi, nella riga 2 ti viene chiesta la password root di server1.example.com.
Ma fortunatamente c’è una soluzione: l’uso di chiavi pubbliche. Creiamo una coppia di chiavi (sul nostro server di backup backup.example.com), una delle quali viene salvata in un file sul sistema remoto (server1.example.com). Successivamente non ci verrà più chiesta una password quando eseguiamo rdiff-backup. Questo include anche i lavori cron, che è esattamente ciò che vogliamo.
Oh, come potresti già aver indovinato da quanto ho scritto finora, il concetto è che iniziamo i backup di server1.example.com direttamente da backup.example.com; server1.example.com non deve fare nulla per essere sottoposto a backup.
Questo howto è inteso come una guida pratica; non copre gli aspetti teorici. Questi sono trattati in molti altri documenti sul web.
Questo documento viene fornito senza alcuna garanzia di alcun tipo! Voglio dire che questo non è l’unico modo per impostare un tale sistema. Ci sono molti modi per raggiungere questo obiettivo, ma questo è il modo che seguo. Non rilascio alcuna garanzia che questo funzionerà per te!
Passo 1: Installa rdiff-backup su server1.example.com e backup.example.com
Prima dobbiamo installare rdiff-backup su entrambi server1.example.com e backup.example.com. Su sistemi Debian puoi semplicemente farlo eseguendo
apt-get install rdiff-backup
Su altre distribuzioni l’installazione è diversa (su Fedora potrebbe essere qualcosa come yum install rdiff-backup, su Mandriva urpmi rdiff-backup, e su SuSE dovresti usare yast per installare rdiff-backup).
Passo 2: Crea le chiavi su backup.example.com
Su backup.example.com, creiamo un gruppo e un utente non privilegiato chiamato rdiff-backup. Questo utente rdiff-backup eseguirà i backup. Non vogliamo che root esegua i backup per motivi di sicurezza!
groupadd -g 3500 rdiff-backup
useradd -u 3500 -s /bin/false -d /backup -m -c “rdiff-backup” -g rdiff-backup rdiff-backup
Il secondo comando crea l’utente rdiff-backup con la home directory /backup (che viene creata automaticamente da questo comando se non esiste già) che non è autorizzato a effettuare il login nella shell (ancora per motivi di sicurezza). Se l’ID di gruppo e l’ID utente 3500 sono già in uso sul tuo sistema, sostituiscili con un altro ID (libero).
Quindi esegui
su -m rdiff-backup
Con questo comando diventi l’utente rdiff-backup nella shell. Tutti i comandi seguenti devono essere eseguiti come utente rdiff-backup!
Crea le chiavi:
cd /backup
ssh-keygen -t rsa
Vedrai qualcosa di simile:
| rdiff-backup@backup:~$ ssh-keygen -t rsa Generazione di una coppia di chiavi rsa pubblica/privata. Inserisci il file in cui salvare la chiave (/backup/.ssh/id_rsa): Directory creata '/backup/.ssh'. Inserisci la passphrase (vuoto per nessuna passphrase): Inserisci di nuovo la stessa passphrase: La tua identificazione è stata salvata in /backup/.ssh/id_rsa. La tua chiave pubblica è stata salvata in /backup/.ssh/id_rsa.pub. L'impronta della chiave è: 88:18:4e:55:e9:27:8e:2a:44:4b:03:bd:9d:0f:fc:48 rdiff-backup@backup |
Va bene salvare la chiave in /backup/.ssh/id_rsa quindi puoi semplicemente premere invio. È importante che tu non inserisca una passphrase altrimenti il backup non funzionerà senza interazione umana, quindi premi di nuovo invio. Alla fine vengono creati due file: /backup/.ssh/id_rsa e /backup/.ssh/id_rsa.pub.
Successivamente crea il file /backup/.ssh/config con il seguente contenuto:
| host server1_backup hostname server1.example.com user root identityfile /backup/.ssh/id_rsa compression yes cipher blowfish protocol 2 |
Il valore di host è ciò che utilizziamo in seguito per avviare il backup. Puoi usare qualsiasi nome ti piaccia (ad esempio server1_backup, this_is_the_machine_i_want_to_backup, ecc.) (ma non dovrebbe contenere spazi; gli underscore vanno bene).
Cambia i permessi di quel file:
chmod -R go-rwx /backup/.ssh
Ora copiamo la nostra chiave pubblica su server1.example.com:
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]
Questo apparirà così:
| rdiff-backup@backup:~$ ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] 23 L'autenticità dell'host 'server1.example.com (1.2.3.4)' non può essere stabilita. L'impronta della chiave RSA è c7:19:55:7a:54:ce:93:c8:b6:f9:0e:e3:65:24:64:11. Sei sicuro di voler continuare a connetterti (sì/no)? sì Attenzione: aggiunto permanentemente 'server1.example.com' (RSA) alla lista degli host noti. Password: Ora prova a effettuare il login nella macchina, con "ssh '[email protected]'", e controlla in: .ssh/authorized_keys per assicurarti che non abbiamo aggiunto chiavi extra che non ti aspettavi. rdiff-backup@backup:~$ |
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.