El programa rsync viene incluido con la instalación de Mac OSX pero si necesitas una versión más moderna y que soporte más funcionalidades, como por ejemplo preservar metadatos, soporte de caracteres extendidos o caracteres multiplataforma entonces vas a tener que instalarte una de las últimas versiones. En mi caso lo necesité a finales del 2006 porque la version incluida no era demasiado moderna.
Para poder compilar la última versión necesitarás:
- Saber utilizar Terminal.app
- Tener instaladas las Apple Developer Tools
Los pasos para realizar la instalación son los siguientes. Cuando lo hice se trataba de la versión 3.1.0 que compilé en MacOSX 10.8.5 en modo 64 bits. Como root:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | cd /tmp curl -O http://rsync.samba.org/ftp/rsync/rsync-3.1.0.tar.gz tar -xzvf rsync-3.1.0.tar.gz rm rsync-3.1.0.tar.gz curl -O http://rsync.samba.org/ftp/rsync/rsync-patches-3.1.0.tar.gz tar -xzvf rsync-patches-3.1.0.tar.gz rm rsync-patches-3.1.0.tar.gz cd rsync-3.1.0 patch -p1 < patches/fileflags.diff patch -p1 < patches/crtimes.diff ./prepare-source ./configure make make install mv /usr/local/bin/rsync /usr/bin |
Instalación daemon rsyncd en MacOSX
Si lo consideras necesario puedes actualizar a la última versión de rsync tal como describo más arriba. En cualquier caso lo que describo a continuación vale tanto para la última versión como para versiones anteriores.
En esta sección vamos a ver cómo configurar el MacOSX para que arranque «rsync» en modo daemon, o lo que es lo mismo, se ejecute el comando «rsync –daemon» en el background.
Para poder ejecutar un «daemon» en el Mac y que arranque en cada boot hay que usar «launchd» y «launchdctl» para cargar un fichero XML que describa qué proceso quieres ejecutar en modo daemon. El fichero XML es un fichero «PLIST o property list» que se instala como root en /Library/LaunchDaemon.
Así que allá vamos. Crear el fichero «org.samba.rsync.plist»
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <!--?xml version="1.0" encoding="UTF-8"?--> Disabled Label org.samba.rsync Program /usr/bin/rsync ProgramArguments /usr/bin/rsync --daemon --config=/etc/rsyncd.conf inetdCompatibility Wait Sockets Listeners SockServiceName rsync SockType stream |
Desde Terminal.app y como root copio el fichero a /Library/LaunchDaemons
1 | cp org.samba.rsync.plist /Library/LaunchDaemons/ |
Creo el fichero /etc/rsyncd.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | pid file = /var/run/rsyncd.pid use chroot = yes read only = yes charset = utf-8 [Datos] path=/Volumes/Datos comment = Repositorio de Luis uid = luis gid = luis list = yes read only = false auth users = luis secrets file = /etc/rsync/rsyncd.secrets |
Fichero de secretos /etc/rsync/rsyncd.secrets. Usar la misma contraseña (Clean) que usará el cliente.
1 | luis:CONTRASEÑA |
1 | # chmod 400 rsyncd.secrets |
Cargo el plist en el registro de launchd. El proceso «rsync –daemon» no arranca, lo que estamos haciendo es que se registre el servicio y cuando llegue una petición al puerto 783 el proceso launchd se encargará de arrancar «rsync –daemon».
1 2 3 4 5 6 | # netstat -na|grep 873 : # launchctl load -w /Library/LaunchDaemons/org.samba.rsync.plist # netstat -na|grep 873 tcp6 0 0 *.873 *.* LISTEN tcp4 0 0 *.873 *.* LISTEN |
Desde un cliente podemos comprobar que está funcionando
1 2 3 4 5 | $ rsync --stats luis@miservidor.midominio.com::Datos Password: : sent 58 bytes received 618 bytes 193.14 bytes/sec total size is 24580 speedup is 36.36 |
Leave a Reply