Introducción ============ Los perfiles móviles de Lliurex sirven para mover una limitada cantidad de datos del home del usuario. En un cliente de aula, el directorio home es local, pero el directorio Documentos es un montaje samba al servidor, donde le usuario debe dejar aquellos documentos a los que se desee tener acceso desde cualquier cliente. No obstante, los archivos de configuración que emplean la mayoría del software de escritorio, guarda sus datos en el directorio home, y cuando el usuario cambia de cliente. Los perfiles móviles dan una solución a este problema creando una sincronización de una lista de archivos calculada, en el inicio y en el cierre de la sesión. La tecnología de los perfiles móviles consta de tres componentes, el plugin n4d, la librería principal y el servicio de gnome. Plugin N4D ============ Este plugin, suministrado por el paquete n4d-moving-profiles es el que se encuentra en el servidor. Lo único que hace es servir lecturas y escrituras mediante n4d al archivo de configuración /etc/lliurex-moving-profiles.conf. La configuración es un archivo de texto clave valor, al estilo INI, donde hay dos secciones, Include y Exclude. La primera sección alberga una serie de claves con las reglas para incluir ficheros, aceptandose también wildcards. Por ejemplo, la clave tux=.tux* añadirá todos los archivos que comiencen por .tux, a la lista de candidatos de sincronización. Por otro lado, la sección exclude hace lo mismo con la exclusión, siendo preferente respecto a la inclusión. Por ejemplo, la regla de exclusión notux=.tuxpaint*, si tenemos un archivo denominado .tuxpaint-data, aunque cumple la regla de inclusión tux, también cumple la de exclusión notux, con lo cual se queda fuera de la lista. Es importante tener en cuenta que actualmente, las reglas solo funcionan a un primer nivel de profundidad respecto al directorio home, no es válido, por ejemplo, regla1=.config/gimp*. Puedes incluir .config o no hacerlo, pero no puedes sincronizar porciones de él. Por defecto, lliurex lleva una configuración básica que debería de cubrir la mayoría de necesidades en un aula, como lo son por ejemplo .config, .bashrc, .mozilla o .tuxpaint. Moving Core ============ El paquete lliurex-moving-core es la base de perfiles móviles, el que debe de estar presente en todos los clientes, trae consigo las librerías que implementan la funcionalidad, un cliente de linea de comandos y el servicio de gnome. La única configuración necesaria en un cliente, es que la variable de Lliurex SRV_IP contenga una dirección de servidor válida, y que el servidor tenga el servicio n4d-moving-profiles instalado y en marcha. Una vez instalado correctamente, cuando se inicia una sesión gráfica se pone en marcha el servicio de gnome de los perfiles móviles, mediante un desktop en /etc/xdg/autostart. El servicio realiza una sincronización de el servidor al cliente, establece la configuración de aspecto del escritorio que acaba de ser importada, y se queda en reposo hasta el cierre de la sesión. Cuando se cierra la sesión, el servicio hace una copia de la configuración de escritorio, sincroniza los archivos desde el cliente al servidor y completa el cierre de la sesión. Los perfiles móviles usan rsync para realizar la sincronización, y solo copian aquellos ficheros que han cambiado con el fin de ahorrar ancho de banda, no obstante realizar el cálculo de las diferencias suele tener un coste de 1 a 2 segundos, independientemente del tráfico de red que se realice luego. Utilidad CLI ============ Lliurex-moving-core suministra una herramienta de linea de comandos, que permite realizar operaciones de sincronización manualmente, entre otras funciones. El comando *llx-moving-cmd* se debe ejecutar con un usuario de red, y siempre le precede una acción a realizar. La lista de acciones disponibles es la siguiente: * load: Realiza una sincronización de los perfiles desde el servidor al cliente, operación conocida como carga de perfiles. * save: Realiza la sincronización en sentido contrario, desde el cliente hacia el servidor. * show: Muestra la lista actual de reglas de sincronización. * match: Muestra una lista con los archivos personales que cumplen alguna de las reglas. No realiza ninguna operación de sincronización. * test: Esta acción recibe además el parámetro de *load* o *save*. Sirve para hacer una simulación de sincronización y pronosticar los cambios. Muestra una lista de aquellos ficheros que se copian, de los que se crean nuevos y de los que se eliminan. No se realiza ninguna sincronización real. * purge: Seguido de *local* o *remote* elimina los ficheros personales en el lado local o en el servidor. En el lado local se entiende por todos aquellos ficheros del directorio *home* que coinciden con las reglas de sincronización (ver acción match). .. warning:: Esta acción si que realiza cambios irreversibles. Está diseñada para solucionar posibles casos de archivos corruptos, es conveniente volver a sincronizar en sentido opuesto despues de hacer el purge, de lo contrario, al salir de la sesión se sincronizarán ambas copias perdiéndose toda la información de manera definitiva. Por ejemplo: # llx-moving-cmd purge local && llx-moving-cmd load * backup: Seguido de un nombre, realiza una copia del perfil local en el servidor, en la ruta ~/Documentos/.moving_profiles_backup/NOMBRE donde NOMBRE es el proporcionado como parámetro. Esta acción esta pensada para el administrador, de manera que pueda hacer una copia de seguridad antes de realizar pruebas con algún perfil real.