Com fer servir Rsync per sincronitzar directoris locals i remots?

Actualitzat el 2026-10-23 03:01:23 16 visites

Alguna vegada t'ha passat que necessites transferir fitxers de forma ràpida i segura entre diferents servidors o has perdut un fitxer important? Si la resposta és sí, Rsync és l'eina perfecta per a tu. Rsync és una eina de sincronització de fitxers i directoris de codi obert que et permet transferir fitxers de forma ràpida i segura entre servidors locals i remots. És una eina poderosa i molt versàtil que pot ajudar-te a mantenir els teus fitxers actualitzats i segurs.

En aquest tutorial, aprendràs com utilitzar Rsync per sincronitzar fitxers i directoris entre diferents servidors i com programar tasques de sincronització automàtiques.

Per començar aquest tutorial, necessitaràs tenir accés a dos servidors: un local i un altre remot. A més, necessitaràs tenir Rsync instal·lat en ambdós servidors. Si no tens Rsync instal·lat, no et preocupis, et mostrarem com fer-ho en la secció de preparació del sistema.

Conceptes bàsics de Rsync

Rsync és una eina de sincronització de fitxers i directoris per transferir fitxers de forma ràpida i segura entre servidors locals i remots. És una eina molt popular itment utilitzada en el món de la informàtica i de la programació.

Aquí t'expliquem alguns conceptes bàsics de Rsync que has de conèixer abans de començar a utilitzar-lo:

1. Sincronització: Rsync utilitza l'algoritme de sincronització de fitxers delta per transferir només les parts dels fitxers que han estat modificades. Això redueix significativament el temps necessari per a la transferència de fitxers.

2. Còpia local vs. remota: En la sincronització local, Rsync s'utilitza per sincronitzar fitxers entre dos directoris en el mateix servidor. En la sincronització remota, Rsync s'utilitza per sincronitzar fitxers entre dos servidors diferents.

3. Connexió segura: Rsync utilitza SSH per establir una connexió segura entre els servidors locals i remots. SSH és un protocol de xarxa segur que s'utilitza per a la comunicació entre dos dispositius.

Ara que coneixes els conceptes bàsics de Rsync, anem a passar a la següent secció per preparar el sistema i poder utilitzar aquesta eina.

Preparació del sistema

Abans de començar a utilitzar Rsync, és necessari assegurar-se que estigui instal·lat en ambdós servidors i que es compleixin tots els requisits necessaris.

Pass 1: Instal·lació de Rsync

Si Rsync no està instal·lat en els teus servidors, el pots instal·lar utilitzant el gestor de paquets del teu sistema operatiu.

En sistemes basats en Debian o Ubuntu, pots instal·lar Rsync amb el següent comando:

sudo apt-get install rsync

En sistemes basats en CentOS o Fedora, pots instal·lar Rsync amb el següent comando:

sudo yum install rsync

Pass 2: Accés SSH

Rsync utilitza SSH per establir una connexió segura entre els servidors. Per tant, és necessari assegurar-se que tens accés SSH en ambdós.

Pass 3: Verificació de la versió

És important verificar que la versió de Rsync instal·lada en ambdós servidors sigui la mateixa per evitar problemes de compatibilitat. Pots verificar la versió de Rsync utilitzant el següent comando:

rsync --version

Ara que hem preparat el sistema i hem instal·lat Rsync, podem passar a la següent secció per aprendre a sincronitzar fitxers i directoris amb Rsync.

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] [destinació]

Sintaxi bàsica en servidor remot

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

rsync [modificadors opcionals] [origen] [usuari]@[host]:[destinació]

I viceversa:

rsync [modificadors opcionals] [usuari]@[host]:[origen] [destinació]

Sincronització de fitxers i directoris amb Rsync

En aquest primer exemple creem els directoris origen i destinació. Següidament, crearem 5 fitxers en el directori d'origen i veurem la màgia de rsync.

1. Primer creem els dos directoris:

cd ~
mkdir origen
mkdir destino

2. Creem 5 fitxers d'exemple en el directori d'origen:

touch original/archivo{1..5}

3. A continuació, sincronitzarem el contingut del directori origen amb destinació mitjançant l'ús de rsync:

rsync origen/* destino

L' * indica que sincronitzi tot el contingut del directori

En cas que s'afegissin o es modifiquessin fitxers en el directori origen i es tornés a executar el comando rsync, només se sincronitzarien els fitxers nous i modificats, evitant així copiar fitxers innecessaris.

Modificadors opcionals més utilitzats

A continuació, s'especifiquen alguns dels modificadors opcionals que s'hi 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 del dispositiu 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 vol fer rsync entre servidors.
  • --delete elimina fitxers en el directori de destinació si no existeixen en el 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ó, durrem a terme la mateixa operació, però en aquest cas amb la etiqueta --delete, perquè s'esborrin els fitxers en la destinació que no existeixin a l'origen:

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

Sincronització local

Per sincronitzar dos directoris en el mateix servidor, pots utilitzar el següent comando:

rsync -avzh /ruta/directorio-origen/ /ruta/directorio-destino/

Aquest comando sincronitza el contingut del directori-origen amb el directori-destinació. L'opció -avzh indica que Rsync ha de sincronitzar els fitxers en mode arxiu, en mode verbose, en mode compressió i en mode recursiu.

Sincronització remota

Per sincronitzar dos servidors diferents, pots utilitzar el següent comando:

rsync -avzh -e ssh usuario@servidor-origen:/ruta/directorio-origen/ /ruta/directorio-destino/

Aquest comando sincronitza el contingut del directori-origen en el servidor-origen amb el directori-destinació en el servidor local. L'opció -e ssh indica que Rsync ha d'utilitzar SSH per establir una connexió segura entre els servidors.

Sincronització en mode prova

Si vols verificar quins fitxers se sincronitzaran abans de fer-ho realment, pots utilitzar el mode sec. El mode sec realitza una simulació de la sincronització sense fer cap acció real. Pots utilitzar el següent comando:

rsync -avzh --dry-run /ruta/directorio-origen/ /ruta/directorio-destino/

info Aquest comando mostra una llista dels fitxers que se sincronitzaran si s'executa la sincronització real.

Sincronització de fitxers excloent alguns

Si desitges sincronitzar tots els fitxers en un directori, excepta alguns fitxers específics, pots utilitzar l'opció --exclude. Pots utilitzar el següent comando:

rsync -avzh --exclude 'archivo1.txt' --exclude 'archivo2.txt' /ruta/directorio-origen/ /ruta/directorio-destino/

Aquest comando sincronitza tots els fitxers en el directori-origen, excepta archivo1.txt i archivo2.txt.

Conclusions

Rsync és una eina molt útil per sincronitzar fitxers i directoris entre servidors locals i remots. Amb els comandos bàsics que hem mostrat en aquest tutorial, pots començar a utilitzar Rsync de manera efectiva.

A més, conté moltes eines avançades molt interessants. Algunes de les característiques avançades inclouen la compressió de fitxers, la sincronització incremental, l'exclusió de fitxers específics i moltes més.

Finalment, esperem que aquest tutorial t'hagi estat útil i que comencis a utilitzar Rsync per sincronitzar els teus fitxers i directoris!