Com fer servir Rsync per sincronitzar directoris locals i remots?
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:
-ao--archiveaquesta opció ens activa: -rlptgoD, que significa:-rrecursiu-lcopiar enllaços simbòlics com a enllaços simbòlics.-ppreservar els permisos.-tpreservar la data de modificació / creació del fitxer.-gpreservar el grup dels fitxers.-opreservar el propietari dels fitxers.-Dconservar fitxers del dispositiu i conservar fitxers especials.
-vo--verboseper mostrar informació del procés.-eo--rshserveix per especificar una shell remota, per exemple, si es vol fer rsync entre servidors.--deleteelimina fitxers en el directori de destinació si no existeixen en el directori d'origen.-zo--compressens 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!