Differences between revisions 1 and 2
Revision 1 as of 2005-08-26 18:41:46
Size: 2158
Editor: Kurgan
Comment:
Revision 2 as of 2005-09-13 10:50:49
Size: 3992
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 13: Line 13:
Line 16: Line 15:
==== Creazione chiavi asimmetriche ====
Questa parte e` necessaria solo se si vuole lanciare rsync in modo automatico senza dover dare una password per la connessione.
 * Creare le chiavi asimmetriche con il comando {{{ssh-keygen}}} avendo cura di NON impostare una passphrase.
 * Copiare la chiave pubblica nel file {{{.ssh/authorized_keys}}} nella home dell'utente sulla macchina "remota" a cui poi ci si colleghera`.
 * Copiare la chiave privata in un file che poi dovremo indicare nella linea di comando di rsync sulla macchina "locale". E` bene che solo l'utente che deve lanciare rsync possa leggere questo file, perche` si tratta di una chiave privata senza password.
Line 18: Line 22:
 DOCUMENTO NON FINITO. LO FINISCO DOMANI. ==== Parametri di rsync ====
Qui di seguito il lancio di rsync usando chiavi asimmetriche per autenticare, per fare un backup da una macchina remota (10.1.1.1) usando l'utente remoto rsync (creato all'uopo, ma va bene qualsiasi utente) dal path remoto "/home/" al path locale "/backup/home". La sintassi dei path di partenza e destinazione e` praticamente identica a quella di scp. Non e` affatto necessario che la copia vada dalla macchina remota a quella locale, puo` anche andare al contrario. E` consigliabile leggere comuque il manuale, specie relativamente all'opzione "--delete". Per testare le cose senza fare danni, si puo` usare il parametro "n" e togliere il parametro "q".

{{{
# q = quiet, z=comprimi
# il file chiave_dsa_rsync contiene la chiave privata
# exclude funziona come in tar
# gli ultimi due parametri sono username@host:path sorgente e path destinazione.
rsync -qaz --stats --delete -e "ssh -i chiave_dsa_rsync" --exclude ".ssh" --exclude ".bash_history" --exclude ".vi
minfo" rsync@10.1.1.1:/home/ /backup/home/
}}}


Senza usare chiavi asimmetriche, una chiamata minimale e`:
{{{
rsync -qaz --stats --delete rsync@10.1.1.1:/home/ /backup/home/
}}}

Usare Rsync per fare backup remoti via ssh

Questo documento descrive come usare rsync (attraverso ssh) per fare i backup remoti di una directory da una macchina ad un'altra. E` consigliata comunque una lettura dei manuali di Rsync perche` ha un milione di opzioni alcune delle quali potenzialmente pericolose.

Il sistema qui descritto esegue di fatto un mirror della directory, quindi ha alcuni limiti da prendere bene in considerazione:

  • Se si cancella un file nell'originale, viene cancellato anche nella copia. Questo e` voluto, per non accumulare nella copia mucchi di files inutili, pero` e` importante sottolinearlo.
  • Questo sistema fa una copia sola, non tiene alcuno storico. Quindi se si fa un errore e poi un backup, non ci sono piu` copie "buone" (prima dell'errore) da recuperare. Eventualmente se si vuole tenere uno storico, si puo` backuppare in locale la copia su un file tar o come si vuole. Ovviamente non bisogna alterare il contenuto della copia altrimenti poi Rsync rischia di dover trasferire piu` roba di quella necessaria per riallineare le directory
  • La copia avviene SOLO IN UN VERSO, dalla sorgente alla destinazione. Non si tratta di una sincronizzazione bidirezionale. Per fare sincro bidirezionali si puo` usare "Unison".

Principio di funzionamento

Si installa rsync su tutte e due le macchine, e da una delle due lo si lancia facendo in modo che esso stesso lanci, attraverso ssh, la sua "controparte" sull'altra macchina. Alla fine della sincronizzazione rsync termina su tutte due le macchine, e non resta in ascolto in alcun modo. Per usare questo sistema occorre ovviamente avere un account (dedicato, oppure il tuo utente, oppure root se devi sincronizzare roba che puo` essere letta solo da root) sulla macchina remota. Non e` necessario che l'account usato localmente sia lo stesso usato in remoto. Se si vuole usare questo sistema da cron, occorre per forza usare l'autenticazione a chiavi asimmetriche in ssh, per non dover usare delle password. Se lo si usa a mano, si puo` anche usare una normale autenticazione a password.

Creazione chiavi asimmetriche

Questa parte e` necessaria solo se si vuole lanciare rsync in modo automatico senza dover dare una password per la connessione.

  • Creare le chiavi asimmetriche con il comando ssh-keygen avendo cura di NON impostare una passphrase.

  • Copiare la chiave pubblica nel file .ssh/authorized_keys nella home dell'utente sulla macchina "remota" a cui poi ci si colleghera`.

  • Copiare la chiave privata in un file che poi dovremo indicare nella linea di comando di rsync sulla macchina "locale". E` bene che solo l'utente che deve lanciare rsync possa leggere questo file, perche` si tratta di una chiave privata senza password.

Parametri di rsync

Qui di seguito il lancio di rsync usando chiavi asimmetriche per autenticare, per fare un backup da una macchina remota (10.1.1.1) usando l'utente remoto rsync (creato all'uopo, ma va bene qualsiasi utente) dal path remoto "/home/" al path locale "/backup/home". La sintassi dei path di partenza e destinazione e` praticamente identica a quella di scp. Non e` affatto necessario che la copia vada dalla macchina remota a quella locale, puo` anche andare al contrario. E` consigliabile leggere comuque il manuale, specie relativamente all'opzione "--delete". Per testare le cose senza fare danni, si puo` usare il parametro "n" e togliere il parametro "q".

# q = quiet, z=comprimi
# il file chiave_dsa_rsync contiene la chiave privata 
# exclude funziona come in tar
# gli ultimi due parametri sono username@host:path sorgente e path destinazione. 
rsync -qaz --stats --delete -e "ssh -i chiave_dsa_rsync" --exclude ".ssh" --exclude ".bash_history" --exclude ".vi
minfo"   rsync@10.1.1.1:/home/ /backup/home/

Senza usare chiavi asimmetriche, una chiamata minimale e`:

rsync -qaz --stats --delete  rsync@10.1.1.1:/home/ /backup/home/

LinuxDebian/Rsync (last edited 2017-01-29 16:42:34 by Kurgan)