Requereixes d’una instal·lació o configuració de Linux o els seus serveis?
Un desenvolupament WEB empresarial a la mesura? a Un curs o capacitació a la mesura? a Revisa el lloc de sERVEIS de LinuxTotal a
Copyright © 2005-2021 LinuxTotal.com.mx a es concedeix permís per a copiar, distribuir i / o modificar aquest document sempre que se citi a l’autor i la font de linuxtotal. com.mx i segons els termes de la Llicència de documentació lliure GNU versió 1.2 o qualsevol de posterior publicada per la Free Software Foundation.
Autor: Sergio González D. ([email protected])
rsync
és l’eina de copiat i sincronització d’arxius més potent que existeix en el món de Linux / Unix.Es 1 utilleria, que d’acord a la seva pàgina man
, és ràpida, versàtil per al copiat local i remot d’arxius. Ofereix unalarga llista d’opcions que controlen tots els possibles aspectes del seu comportament.
El ‘secret’ de rsync
és el seu algoritme anomenat ‘delta-transfer’ que redueix la quantitat de dades que s’envien via Redal enviar només les diferències que hi ha entre dos arxius a nivell de les seves metadades (permisos, dates d’accés, etc) i de l’contenidode les seves dades a nivell de blocs en disc.
mode d’ús
La manera d’ús de rsync
és idèntica a les ordres cp
o scp
, és a dir, rsync origen
el ‘destí’ en rsync es diu que és opcional perquè si només es fa servir l’origen, llavors equival a llistar el directori o arxiu origen.
Tant el ‘origen’ com el ‘destí’ poden ser locals o remots
a
Sincronitzar directoris localment
Per poder exemplificar l’ús bàsic de rsync
es creen un parell de directoris i una mica de contingut:
$> mkdir dir1 dir2 $> touch dir1/reporte{1..5}$> $> ls -l dir1/total 0-rw-rw-r-- 1 user1 user1 0 Jan 9 13:43 reporte1-rw-rw-r-- 1 user1 user1 0 Jan 9 13:43 reporte2-rw-rw-r-- 1 user1 user1 0 Jan 9 13:43 reporte3-rw-rw-r-- 1 user1 user1 0 Jan 9 13:43 reporte4-rw-rw-r-- 1 user1 user1 0 Jan 9 13:43 reporte5$> $> ls -l dir2/total 0$>
Usant mkdir
vam crear un parell de directoris i després amb touch
generem 5 arxius anomenats reporte1, reporte2, etc.
rsync
per sincronitzar directoris requereix de al menys l’opció -r indicar recursivitat i copia el contenidodel directori més tots els subdirectoris que es trobin directori.
$> rsync -r dir1/ dir2$> ls -l dir2/total 0-rw-rw-r-- 1 user1 user1 0 Jan 9 13:45 reporte1-rw-rw-r-- 1 user1 user1 0 Jan 9 13:45 reporte2-rw-rw-r-- 1 user1 user1 0 Jan 9 13:45 reporte3-rw-rw-r-- 1 user1 user1 0 Jan 9 13:45 reporte4-rw-rw-r-- 1 user1 user1 0 Jan 9 13:45 reporte5$>
si per alguna raó no es requereix recursivitat però si crear els subdirectoris (i no copiar el seu contingut) llavors utilitza l’opció –dirs que només copia el contingut de directori origen, arxius i nom de directoris, però no hi ha recursivitat.
NOTA: Si s’utilitzen les opcions ryū –dirs a el mateix temps, llavors -r té preferència.
Quan es sincronitzen directoris és important tenir en compte la diagonal / (slash) a la fi de directori (dir1) origen ja que això indica ‘copiar el contendio de l’dir1’ i els seus subdirecto ris directament en dir2.
En cas contrari el resultat és el següent:
$ rsync -r dir1 dir2$ $ ls -l dir2/total 4drwxrwxr-x 2 user user 4096 Jan 9 13:46 dir1 (El dir1 se copió dentro de dir2 al no indicar /)
Cal tenir en compte que -r només còpia recursivament però no preserva o conserva permisos i estampes de temps dels arxius copiats.
a
La manera més utilitzat
Una vegada entenent quersync
és similar en ús que l’ordrecp
vegem les opcions més utilitzades:
$ rsync -vazh dir1/ dir2
- -V manera verbós, info extra dels arxius sent copiats, etc.
- -a manera arxivi, aquesta opció és la que necessitaràs més freqüentment, ja que copia els arxius i directoris recursivament ia diferència de l’opció -r preserva enllaços, permisos d’arxius , usuari i grup de l’arxiu, i estampes de temps.
- -z comprimeix dades dels arxius a l’transferir, útil sobretot en transferències o còpies remotes.
- -h manera humana, sortida de nombres en format llegible per humans.
$ rsync -avzh file* dir2sending incremental file listfile1file10file2file3file4file5file6file7file8file9sent 56.73K bytes received 206 bytes 22.77K bytes/sectotal size is 57.67M speedup is 1,012.97(Aqui se copía todos los archivos que comienza con "file" al dir2) $ rsync -az file* dir2$ (Lo mismo se logra sin las opciones -v y -h, pero no hay info de avance ni reporte al final)
a
Còpies remotes
Com el seu nom indica rsync
“remote sync” és utilitzat principalment per copiar des de i feia servidors remots entre si, la sintaxi és senzilla: es posa l’hostname o adreça IP de servidor remot seguidio de: i el directori destí (host: dir) a Ejamplos:
$ rsync -avzh /srv/respaldos/ host2:respaldos/(Del equipo local al equipo "host2" y al directorio /home/user1/respaldos. $ rsync -avzh /srv/respaldos/ user1@host2:respaldos/(Se indica específicamente el usuario en el remoto, de acuerdo a laconfiguración se pedira la contraseña)$ rsync -avzhP [email protected]:/srv/respaldos/ /home/sergio/respaldos/(Desde el equipo remoto 192.168.10.10 con el usuario admin al equipo local.Nótese la opción -P, que es igual a la opción --progress, es útil en transferecnias demúltiples archivos para mostrar el avance o progreso de la copia o transferencia.)
a
Còpies remotes amb ssh
Si estàs copiant informació sensible i vols assegurar-te que aquesta sigui transferida de manera segura (encriptada) es pot llavors utilitzar l’opció -i amb el paràmetre ssh.
$ rsync -avzhe ssh [email protected]:/backups/file001.log /var/log/[email protected]'s password:receiving incremental file listfile001.logsent 70 bytes received 9.23K bytes 2.17K bytes/sectotal size is 50.12K speedup is 2.66
a
Excloent i / o Incloent arxius
Aquestes dues opcions, – include i –exclude realitzen exactament el que indiquen incloure i / o excloure arxius a la transferència d’arxius.
$ rsync -azP --exclude '*.bkp' 192.168.10.10:/srv/respaldos/ /home/sergio/respaldos/(Copia todo del origen al destino excepto (excluye) todos losarchivos terminados en .bkp)$ rsync -azP --include 'reporte*' --exclude '*' 192.168.10.10:/srv/respaldos/ /home/sergio/respaldos/(Excluye todo, pero incluye solo aquellos archivos que comienzen con 'reporte')
a
Esborrant en la destinació
No és una cosa molt freqüent, però suposem que vols mantenir dos directoris completament iguals, els mateixos arxius, és a dir, que el directori destí sigui idèntic a directori origen. Tens llavors un o més arxius que hi ha en la destinació però que ja no estan en l’origen, a l’utilitzar rsync
amb l’opció –delete ho aconsegueixes. S’eliminaran els arxius que estiguin en la destinació que ja no existeixin en l’origen.
$ touch dir2/ejemplo.txt$ rsync -avhP --delete dir1/ dir2sending incremental file listdeleting ejemplo.txt./reporte1 0 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=4/6)reporte2 0 100% 0.00kB/s 0:00:00 (xfr#2, to-chk=3/6)reporte3 0 100% 0.00kB/s 0:00:00 (xfr#3, to-chk=2/6)reporte4 0 100% 0.00kB/s 0:00:00 (xfr#4, to-chk=1/6)reporte5 0 100% 0.00kB/s 0:00:00 (xfr#5, to-chk=0/6)sent 337 bytes received 129 bytes 932.00 bytes/sectotal size is 0 speedup is 0.00(Se crea en dir2 ejemplo.txt y nótese que al copiar todo de dir1 a dir2, en dir2 seelimina ejemplo.txt al no existir en dir1. Nótese también como la opción -P muestra elprogreso de la transferencia archivo por archivo)
a
I esborrant l’origen
si després d’una transferència o còpia de dades reeixida no vols ocupar més espai en l’origen, llavors utilitza l’opció –remove-source-files, que com el seu nom ho indica clarament eliminarà els arxius en l’origen. ‘COMPTE AMB AQUESTA OPCIÓ !!! (Txeca la següent opció)
$ touch dir1/test1.txt dir1/test2.txt$ rsync -avh --remove-source-files dir1/test* dir2/sending incremental file listtest1.txttest2.txtsent 167 bytes received 70 bytes 474.00 bytes/sectotal size is 0 speedup is 0.00$ $ ll dir1/test*ls: cannot access dir1/test*: No such file or directory$
a
Simular o testejar la transferència abans de realment fer-
Quan facis còpies o transferències crítiques, on a l’sobreescriure o eliminar arxius pogués causar conseqüències greus, com la pèrdua de dades o arxius sensibles (com en les opcions mostrades anteriorment –remove-source-files i –delete) o si encara no estàs molt familiaritzat amb l’ús de rsync
, llavors és convenient utilitzar la molt útil opció –dry-run (simular o provar) on rsync
realment no realitzarà cap acció de transferència, copiat o eliminat d’arxius, però no obstant això et mostrarà la sortida com si ho hagués hecjo, i d’aquesta manera puguis comprovar si les accions són les realment desitjades . Un cop satisfet només elimina –dry-run i executa la comanda.
$ rsync -avh --dry-run --remove-source-files dir1/test* dir2/
a
Establint límits d’ample de banda i / o transferència màxima / mínima de dades
– max-size = ‘500 k’ aquesta opció permet definir la mida màxima dels fitxers a transferir. Així que només es copiessin els arxius iguals o menors a la mida indicat.
– min-size = ‘500 k’ aquesta opció permet definir la mida mínima dels arxius a transferir. Així que només es copiessin els arxius iguals o majors a la mida indicat.
$ rsync -avzhP -e ssh --max-size='500k' /home/ventas/reportes/*.xls [email protected]:/backups/[email protected]'s password:sending incremental file list201501.xls201502.xls201505.xls...sent 234.14K bytes received 315 bytes 22.21K bytes/sectotal size is 11.07M speedup is 175.82(Solo se transfieren archivos xls menores o iguales a 500 kilobytes.Prefijos para el tamaño puede ser k, m, g)
– bwlimit = 100 per default, rsync
no limita l’ample de banda en les transferències entre equips, però si es vol limitar-la amb aquesta opció s’aconsegueix.
$ rsync -avzhP -e ssh --max-size='500k' --bwlimit=100 /home/ventas/reportes/*.xls [email protected]:/backups/(Si no se indica prefijo, el default es 'k', en kilobytes.Prefijos para el ancho de banda pueden ser k, m, gSi se indica --bwlimit=0 es ancho de banda ilimitado, o es lo mismono indicar la opción en si.)
a
Opcions més útils
les opcions més comuns o estris de rsync
, ja sigui d’ús local o remot són les següents:
Opció | Descripció | |
---|---|---|
Talla | Llarga | |
-a | – arxivi | Mode arxivi, és igual a indicar les opcions r, l, p , t, g, oi D |
-r | – recursive | Recursiu, còpia recursivament els directoris. |
-l | – links | Quan troba symlinks (enllaços simbòlics), aquests són recreats en la destinació. |
-p | – perms | Opcions ió que causa en la destinació establir els permisos mateixa manera que en l’origen. |
-t | – times | Transfereix els temps dels arxius (atime, ctime, mtime) a la destinació |
-g | – group | Estableix en la destinació que el grup de l’arxiu copiat sigui igual que l’origen. |
-o | – owner | Estableix en la destinació que el propietari de l’arxiu copiat sigui igual que l’origen. |
-D | Això és igual d’indicar les opcions – devices i –specials | |
– exclude pATTERN | Exclou arxius que igualen el patró o pattern indicat. | |
– include pATTERN | Inclou arxius que igualen el patró o pattern indicat. | |
– devices | Transfereix arxius de dispositius de bloc i caràcter a la destinació on són recreats. Això només pot passar si en la destinació es tenen permisos de root. | |
– specials | Transfereix arxius especials com FIFOs i named sockets. | |
– versio | Indica el nombre de versió de rsync |
|
-v | – verbose | Incrementa la quantitat d’informació que s’informa durant la transferència o còpia de arxius. És laopción contrària a –quiet |
-q | – quiet | decrementeu la quantitat d’informació que s’informa durant la transferecnia o còpia d’arxius. Generalment s’utilitza quan rsync s’utilitza en una tasca cron.És l’opció contrària a –verbose |
-I | – ignori-times | Una de les grans virtuts de rsync és que a l’hora de copiar o transferir arxius, si aquests són igualesen la destinació en termes de temps i mida ja no ho còpia, no hi ha canvis . Aquesta opció permet que això sigui ignorat i totsels arxius seran copiats / actualitzats en la destinació. (Veure –size-only també) |
– size-only | Normalment només es transfereixen arxius amb els temps canviats o la mida canviat. Amb aquesta opció s’ignoren els temps dels arxius i es transfereix qualsevol amb una mida diferent en la destinació. | |
-n | – dry-run | Crea una prova de test del que realment passarà sense aquesta opció, sense realitzar cap canvi. És a dir, la sortida mostradaserá molt similar al que realment passarà si no s’inclou –dry-run. Generalment s’usa juntament amb l’opció –verbosey l’opció –itemize-changes |
-i | – -itemize-changes | Reporta una llista dels canvis realitzats en cada arxiu, inclosos canvis en els seus atributs. Això és equivalent autilizar -vv en versions obsolteas de rsync . |
– remove-source-files | Remou els arxius en l’origen (no directoris) si en la destinació aquests van ser reeixidament duplicats o copiats. | |
– timeout = tEMPS | Especifica un timeout en segons, si no dades són transferits en temps indicat rsync terminará.El default és 0 segons que vol dir sense timeout. |
|
– -log-file = ARXIU | Bitacoriza el que s’ha fet a l’ARXIU indicat. | |
– stats | Imprimeix un conjunt informatiu de dades estadístiques sobre la transferència realitzada. | |
– progress | Mostra el avanç o progrés dels arxius que estan sent transferits. | |
– bwlimit = KBPS | Permet establir un límit de transferència en kilobytes per segon. Aquesta opció seu default és 0, el que indicano límit en l’ús de l’ample de banda en la transferència. | |
– max-size = MIDA | No transfereix qualsevol arxiu més gran que el MIDA indicat. | |
– min-size = MIDA | No transfereix qualsevol arxiu més petit que el MIDA indicat. | |
-z | – compress | Comprimir dades durant la transferència. |
Requereixes d’una instal·lació o configuració de Linux o els seus serveis?
Un desenvolupament wEB empresarial a la mesura?
Un curs o capacitació a la mesura? a Revisa el lloc de sERVEIS de LinuxTotal