· Tutorial ·

Sincronitzar directoris locals i remots amb rsync

En aquesta guia explicarem la utilització de rsync per millorar la productivitat als sistemes basats en Linux.

Què és rsync?

Rsync és una utilitat que permet transferir i sincronitzar fitxers o directoris de manera eficient entre una màquina local o servidor remot.

Sintaxi bàsica

Sintaxi bàsica en entorn local

La sintaxi bàsica per a rsync en entorns locals és la següent:

rsync [modificadors opcionals] [origen] [destí]

Sintaxi bàsica en servidor remot

La sintaxi bàsica per a rsync entre un entorn local a un entorn remot és la següent:

rsync [modificadors opcionals] [origen] [usuari]@[host]:[destí]

I viceversa:

rsync [modificadors opcionals] [usuari]@[host]:[origen] [destí]

Instal·lar rsync

Moltes distribucions Linux inclouen el paquet rsync preinstal·lat. En cas que no vingui preinstal·lat, pots fer-ho de forma manual amb el següent comando:

  • Distribucions basades en Debian (Ubuntu, etc):
apt-get install rsync
  • Distribucions basades en RPM (Fedora, CentOS, etc):
yum install rsync
  • MacOS:
bew install rsync

Així de fàcil! Per verificar que s'ha instal·lat pots obtenir la versió amb el següent comando:

rsync -version

Exemples d'ús

En aquest primer exemple creem els directoris origen i destinació. Seguidament, crearem 5 fitxers al directori origen i veurem la màgia de rsync.

  1. Primer creem els dos directoris:
cd ~
mkdir origen
mkdir destinació
  1. Creem 5 fitxers d'exemple al directori origen:
touch original/arxiu{1..5}
  1. A continuació, sincronitzarem el contingut del directori origen amb destinació mitjançant l'ús de rsync:
rsync origen/* destinació

El * indica que sincronitzi tot el contingut del directori

En cas que s'hi afegissin o es modifiquessin fitxers al directori origen i es tornés a executar la comanda rsync, només se sincronitzarien els arxius nous i modificats evitant així copiar arxius innecessaris.

Modificadors opcionals més utilitzats

A continuació, s'especifiquen algun dels modificadors opcionals que es poden afegir a l'ús de rsync:

  • -a o --archive aquesta opció ens activa: -rlptgoD , que significa:
    • -r recursiu
    • -l copiar enllaços simbòlics com a enllaços simbòlics.
    • -p preservar els permisos.
    • -t preservar la data de modificació/creació del fitxer.
    • -g preservar el grup dels fitxers.
    • -o preservar el propietari dels fitxers.
    • -D conservar fitxers dels dispositius i conservar fitxers especials.
  • -v o --verbose per mostrar informació del procés.
  • -e o --rsh serveix per especificar una shell remota, per exemple, si es volen fer rsync entre servidors.
  • --delete elimina fitxers al directori de destinació si no existeixen al directori d'origen.
  • -z o --compress ens comprimeix les dades durant la transferència.

Exemples d'ús amb modificadors

En aquest primer exemple sincronitzarem el contingut de la carpeta /var/log del servidor 10.0.0.11 a la carpeta /tmp del nostre servidor mitjançant la shell de SSH.

rsync -avz -e 'ssh' [email protected]:/var/log /var/log /tmp/log

A continuació, durem a terme la mateixa operació, però en aquest cas amb el tag --delete, perquè s'esborrin els fitxers en destinació que no existeixin a l'origen:

rsync -avz --delete -e 'ssh' [email protected]:/var/log /var/log /tmp/log

Conclusions

En conclusió, amb rsync pots transmetre transferències de fitxers a través de connexions de xarxa o directoris locals. La seva flexibilitat fa que sigui una opció molt bona per a moltes operacions a nivell de fitxers.

Un bon domini de rsync et permet dissenyar operacions complexes de còpies de seguretat i obtenir un control sobre com i que es transfereix.

i