L'anticamera del cestino

Raccolta differenziata di esperienze di dubbia utilità

Posts Tagged ‘backup

Backup con rsync via ssh

with 3 comments

Limportanza del backup. Questo server è stato distrutto in un incendio nel Choteau NE Oklahoma sul 11/27. Immagine di John from USA pubblicata su Wikimedia Commons con licenza Creative Commons

L'importanza del backup. Questo server è stato distrutto in un incendio nel Choteau NE Oklahoma sul 11/27. Immagine di John from USA pubblicata su Wikimedia Commons con licenza Creative Commons

Questa guida è tratta dai seguenti articoli “Using Rsync and SSH” e “Login SSH senza password“.

rsync è uno strumento affidabile che permette la sincronizzazione del contenuto di due cartelle, quindi perfetto per fare il backup di un server o dei dati personali del vostro PC. Ecco come abbinare rsync a ssh per salvare la vostra copia di backup su una macchina remota e come schedulare questa attività con cron.

$ rsync -avz -e ssh /this/dir/ remoteuser@remotehost:/remote/dir

rsync è dotato di numerose opzioni che permettono di adattarlo agli usi più diversi. Si rimanda al manuale di rsync per la consultazione delle diverse opzioni. Nel comando riportato sopra, le opzioni -az permetteranno di fare un backup incrementale, comprimendo i dati prima del trasferimento. Volendo è possibile aggiungere l’opzione –delete per avere una copia esatta delle due cartelle (suggerimento di Malex, vedi commenti). Senza questa opzione, un file cancellato sulla macchina locale verra conservato sul server remoto. L’opzione -v permette di visualizzare le attività svolte nel corso dell’operazione.

Lanciando il comando riportato sopra vi verrà richiesto di inserire la password dell’utente “remoteuser” sul server “remotehost”. Se l’autenticazione avrà successo, rsync copierà il contenuto della cartella /this/dir nella cartella /remote/dir. Nel caso sia già stato eseguito il comando in precedenza, rsync copierà solo le modifiche.

Vediamo ora come fare in modo che, effettuando una connessione ssh dalla macchina locale al “remotehost” utilizzando l’utente “remoteuser”, non non venga richiesta la password.

Per prima cosa generiamo una coppia di chiavi di autenticazione sulla macchina locale con il comando seguente (nel momento in cui sarà richiesta una password non inseriamo nulla).

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/mio_utente/.ssh/id_rsa):
Created directory '/home/mio_utente/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/mio_utente/.ssh/id_rsa.
Your public key has been saved in /home/mio_utente/.ssh/id_rsa.pub.
The key fingerprint is:
2f:3e:09:4f:5e:79:5h:8c:2a:ad:f5:32:41:ac:17:e2 mio_utente@pclocale

Con questo comando, nella directory /home/mio_utente/.ssh sono state create due chiavi: una pubblica id_rsa.pub e una privata id_rsa. E’ importante verificare che la chiave privata sia accessibile solo per il proprietario:

$ ls -la /home/mio_utente/.ssh
-rw------- 1 root root 1675 Jan 7 15:54 id_rsa
-rw-r--r-- 1 root root 395 Jan 7 15:54 id_rsa.pub

A questo punto occorre aggiungere la chiave pubblica al “remotehost” per l’utente “remoteuser”.

$ cat /home/mio_utente/.ssh/id_rsa.pub | ssh remoteuser@remotehost 'cat >> .ssh/authorized_keys'

A questo punto la connessione fra il computer locale e il “remotehost” avverrà, per l’utente “remoteuser”, senza la richiesta della password.

Non resta che scheduare il nostro backup con cron. La configurazione è semplicissima. Basta editare il file /etc/cronttab

00 13 * * * mio_utente  rsync -avz -e ssh /this/dir/ remoteuser@remotehost:/remote/dir

In questo caso il backup sarà eseguito in automatico ogni giorno alle 13 dall’utente “mio_utente”. I dati della directory /this/dir/ saranno salvati nella cartella /remote/dir del server “remotehost”.

Buon backup.

Written by Max-B

8 gennaio 2009 at 10:10

Pubblicato su GNU/Linux

Taggato con

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 42 follower