Diferencia entre revisiones de «Rsync»

De Jose Castillo Aliaga
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Línea 62: Línea 62:


== Servidor rsync ==
== Servidor rsync ==
Teniu un exemple a la documentació:
/usr/share/doc/rsync/examples/rsyncd.conf     
{{nota| A Debian el fitxer és /usr/share/doc/rsync/sample-rsyncd.conf.gz}}
Primer cal però canviar el fitxer:
/etc/default/rsync
Només cal activar el servidor posant:
RSYNC_ENABLE=true
Però encara falta configurar-lo abans de poder-lo executar:
$ sudo /etc/init.d/rsync restart
  * Restarting rsync daemon  rsync                       
  * rsync daemon not running, attempting to start.
  * missing or empty config file /etc/rsyncd.conf
Podeu copiar l'exemple:
$ sudo cp /usr/share/doc/rsync/examples/rsyncd.conf  /etc
Ara cal dir que és el que compartim:
# sample rsyncd.conf configuration file
# GLOBAL OPTIONS
#motd file=/etc/motd
#log file=/var/log/rsyncd
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options=
# MODULE OPTIONS
[ubuntu]
        comment = Ubuntu Mirror
        path = /media/disk2/UbuntuMirror
        use chroot = yes
#      max connections=10
        lock file = /var/lock/rsyncd
# the default for read only is yes...
        read only = yes
        list = yes
        uid = sergi
        gid = sergi
#      exclude =
#      exclude from =
#      include =
#      include from =
#      auth users =
#      secrets file = /etc/rsyncd.secrets
        strict modes = yes
#      hosts allow =
#      hosts deny =
        ignore errors = no
        ignore nonreadable = yes
        transfer logging = no
#      log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
        timeout = 600
        refuse options = checksum dry-run
        dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz
El que està entre claudàtors és anomenat a anomenat mòdul (module) en la terminologia rsync i és el que s'indicar a la URL d'accés. Si no configurem el mòdul tindrem el següent error:
> rsync -a --progress --stats rsync://192.168.7.182/ubuntu .
@ERROR: Unknown module 'ubuntu'
Podeu comprovar que el port està obert amb:
$ sudo nmap -p 873 localhost
Starting Nmap 5.00 ( http://nmap.org ) at 2010-02-01 13:12 CET
Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
PORT    STATE SERVICE
873/tcp open  rsync


== rsync sobre [[SSH]] ==
== rsync sobre [[SSH]] ==

Revisión del 10:24 20 may 2013

Rsync és una aplicació informàtica i un protocol de comunicació per sistemes estil Unix i Windows que sincronitza fitxers i directoris des de una ubicació cap a una altra minimitzant la transferència de dades. Rsync també permet fer còpia de fitxers i directoris fent servir compressió o recursivitat.

rsync -aP --delete [Carpeta orige] [Carpeta destí]
# Exemple de rsync per a fer cópies de seguretat incrementals

Mentre que l'algorisme rsync forma part del nucli de l'aplicació rsync i essencialment optimitza les transferències entre dues computadores sobre TCP/IP, l'aplicació rsync proveeix altres funcions que assisteixen en la transferència. Aquestes inclouen compressió i descompressió de les dades bloc per bloc, utilitzant zlib a enviar i rebre, i suport per a protocols de xifrat, tal com SSH, el que permet transmissió xifrada i eficientment diferenciada de dades comprimits utilitzant l'algorisme rsync.

Addicionalment pot utilitzar-se una aplicació de tunneling també per crear un túnel xifrat que asseguri les dades transmeses.

A més d'arxius, l'algorisme permet copiar directoris, tot recursivament, així com vincles, dispositius, grups i permisos. No requereix per defecte privilegis de root per al seu ús.

rsync va ser escrit com un reemplaçament de rcp i SCP. Una de les primeres aplicacions de rsync va ser el emmirallat (mirroring) o respatller de múltiples clients Unix dintre d'un servidor Unix central, utilitzant rsync / ssh i comptes estàndards d'Unix. Habitualment s'executa mitjançant eines de scheduling com cron, per automatitzar processos de sincronització entre múltiples ordinadors host i servidors centrals.

Copies de seguretat amb rsync

Una de les maneres més potents i bàsiques de fer copies de seguretat és rsync. Per exemple, imagina que tens un directori anomenat source/ i un altre destination/

rsync -a source/ destination/


Aquest comandament és equivalent a:

cp -a source/. destination/

En la diferència de que és molt més eficient.

Si el destí està en una màquina remota:

rsync -a -e ssh source/ username@remotemachine.com:/path/to/destination/

Es pot fer la transmissió per SSH

--delete

Les copies de seguretat poden ser absolutes o incrementals. Si són absolutes dona igual que s'utilitze cp que rsync. En el cas de les incrementals, el rsync sols envía les novetats de l'orige. D'aquesta manera la transmissió és molt més eficient.

Però hi ha un problema, si sols enviem els fitxers nous, els fitxers borrats no s'esborren del destí. Amb l'opció --delete, el destí serà exactament igual a l'orige.

$ rsync -a --delete source/ destination/

Cal utilitzar aquesta opció amb molta cura, ja que, si es fà la copia de seguretat després de borrar un fitxer important, es perdrà en els dos costats.

Es pot utilitzar cron:

$ crontab -e

Afegint:

20 4 * * * rsync -a --delete source/ destination/

Copies de seguretat incrementals

Observa aquest script:

rm -rf backup.3
mv backup.2 backup.3
mv backup.1 backup.2
cp -al backup.0 backup.1
rsync -a --delete source_directory/  backup.0/

Manté 4 copies de seguretat. La 1,2 i 3 són versions antigues de les copies de seguretat. La 0 es copia totalment a la 1 cada vegada. Però la 0 és actualitzada de manera incremental amb l'opció --delete. Si la copia 0 queda mal a causa del --delete, encara queda la 1,2 i 3 per poder recuperar coses perdudes.

Servidor rsync

Teniu un exemple a la documentació:

/usr/share/doc/rsync/examples/rsyncd.conf       
A Debian el fitxer és /usr/share/doc/rsync/sample-rsyncd.conf.gz

Primer cal però canviar el fitxer:

/etc/default/rsync

Només cal activar el servidor posant:

RSYNC_ENABLE=true

Però encara falta configurar-lo abans de poder-lo executar:

$ sudo /etc/init.d/rsync restart
 * Restarting rsync daemon  rsync                        
 * rsync daemon not running, attempting to start.
 * missing or empty config file /etc/rsyncd.conf

Podeu copiar l'exemple:

$ sudo cp /usr/share/doc/rsync/examples/rsyncd.conf  /etc

Ara cal dir que és el que compartim:

# sample rsyncd.conf configuration file

# GLOBAL OPTIONS

#motd file=/etc/motd
#log file=/var/log/rsyncd
# for pid file, do not use /var/run/rsync.pid if
# you are going to run rsync out of the init.d script.
pid file=/var/run/rsyncd.pid
#syslog facility=daemon
#socket options= 

# MODULE OPTIONS

[ubuntu] 

        comment = Ubuntu Mirror
        path = /media/disk2/UbuntuMirror
        use chroot = yes
#       max connections=10
        lock file = /var/lock/rsyncd
# the default for read only is yes...
        read only = yes
        list = yes
        uid = sergi
        gid = sergi
#       exclude =
#       exclude from =
#       include =
#       include from =
#       auth users =
#       secrets file = /etc/rsyncd.secrets
        strict modes = yes
#       hosts allow =
#       hosts deny =
        ignore errors = no
        ignore nonreadable = yes
        transfer logging = no
#       log format = %t: host %h (%a) %o %f (%l bytes). Total %b bytes.
        timeout = 600
        refuse options = checksum dry-run
        dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz 

El que està entre claudàtors és anomenat a anomenat mòdul (module) en la terminologia rsync i és el que s'indicar a la URL d'accés. Si no configurem el mòdul tindrem el següent error:

> rsync -a --progress --stats rsync://192.168.7.182/ubuntu .
@ERROR: Unknown module 'ubuntu'

Podeu comprovar que el port està obert amb:

$ sudo nmap -p 873 localhost

Starting Nmap 5.00 ( http://nmap.org ) at 2010-02-01 13:12 CET
Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
PORT    STATE SERVICE
873/tcp open  rsync

rsync sobre SSH

Opcions

Enllaços

http://rsync.samba.org/examples.html

http://es.wikipedia.org/wiki/Rsync

http://acacha.org/mediawiki/index.php/Rsync

http://www.mikerubel.org/computers/rsync_snapshots/