En aquesta guia explicarem la utilització de rsync per millorar la productivitat als sistemes basats en Linux.
Rsync és una utilitat que permet transferir i sincronitzar fitxers o directoris de manera eficient entre una màquina local o servidor remot.
La sintaxi bàsica per a rsync en entorns locals és la següent:
rsync [modificadors opcionals] [origen] [destí]
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í]
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:
apt-get install rsync
yum install rsync
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
En aquest primer exemple creem els directoris origen
i destinació
. Seguidament, crearem 5 fitxers al directori origen i veurem la màgia de rsync.
cd ~
mkdir origen
mkdir destinació
touch original/arxiu{1..5}
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.
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.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
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.