134 votos

¿Cómo sincronizar la carpeta de inicio entre varios ordenadores?

Tengo tres ordenadores en casa y quisiera tener la /home/ árbol de carpetas sincronizadas entre los tres.
Cualquier archivos y carpetas (excepto los ocultos) que son modificadas/quitarse/ponerse en uno de los tres ordenadores se actualiza en los otros dos.

Es rsync lo suficiente como para hacer esto? y ¿cómo?

106voto

Tim Abell Puntos 145

Aquí está una lista de cosas que podrían resolver este problema, cada uno de los saldos de los trade-offs que usted tiene que hacer de manera diferente, así que tendrá que tomar sus propias decisiones y probar las cosas por ti mismo:

  • Unison - como se ha mencionado por otros, este se ejecuta manualmente, pero es muy rápido, fiable y eficaz. Requiere tanto de máquinas de estar sincronizados para estar en el mismo. Tiene una bonita interfaz de usuario para permitir a lidiar con la consecuencia casi inevitable de los conflictos, y las pistas y se propaga eliminaciones correctamente. La interfaz gráfica de la aplicación/paquete se llama unísono-gtk.

  • OwnCloud - almacenamiento en la Nube de ejecutar en su propio servidor. Usted necesitará una máquina de dejar sobre. Requiere una cantidad razonable de la instalación. Ejecuta un pleno de Apache 2 servidor web y un SqlLite o de base de datos MySQL en el servidor. Funciona de forma similar a Dropbox con un cliente de escritorio, pero el servidor está bajo su control.

  • SparkleShare - usa git para mantener los archivos sincronizados. De acuerdo con la página de inicio: bueno para que muchos archivos pequeños, no es bueno para un montón de archivos de gran tamaño, tales como la música o la colección de fotos.

  • Seafile - Proporciona un componente de servidor que puede instalar en un equipo local. Seafile utiliza un modelo de datos similar a la de git para el seguimiento de los cambios. Proporciona a los clientes de sincronización para ordenadores, tabletas y smartphones. Un blog que describe el programa de instalación se pueden encontrar en http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • Osync - "... bidireccional de archivo de la herramienta de sincronización escrito en bash y basado en rsync. Se trabaja en el local y / o remoto de directorios a través de túneles ssh. Está dirigido principalmente para ser lanzado como tarea cron" (texto de la página web)

  • PowerFolder - basado en java GPL v2 proyecto. Sitio web principal de la empuja ofertas comerciales por lo que no está claro cómo utilizar los .el archivo jar.

  • Rsync - rápido y eficaz y ha estado alrededor por décadas, sin embargo no mantiene una historia, así que tienes que elegir una dirección para decidir si un archivo es nuevo o eliminado. Herramientas gráficas están disponibles, tales como gwRsync.

  • Lsyncd - supervisa las carpetas/archivos para activar la replicación de rsync

  • dvcs-sincronización automática - escrito en python, usa git para almacenar y compartir los cambios entre las máquinas, y XMPP para comunicar cambios.

  • git-anexo - herramienta de línea de comandos para la maniobra de archivos, basado en git. Hay una ilustrativa tutorial aquí: http://git-annex.branchable.com/walkthrough/

  • Tonido - freeware. Proporciona una aplicación de escritorio que va a compartir archivos con otros dispositivos. También proporcionan comercial de ofertas en la nube, y el TonidoPlug conecte la computadora.

  • BitTorrent Sync (freeware) - peer-to-peer de sincronización de archivos basado en BitTorrent. No sé mucho acerca de esto, ya no voy a utilizar por no ser de código abierto y no confiar en él para mantener los datos de mi dentro de mi LAN, siéntase libre de modificar esta respuesta con la mejor información / experiencias reales.

  • SyncThing Desarrollado como una alternativa de código abierto a BitTorrent Sync. Actualmente carece de algunas de las características avanzadas de BitTorrent Sync, como compañeros que no son de confianza. Está bajo desarrollo activo.

  • Alojamiento comercial de servicios como dropbox, ubuntu one, google drive, iCloud de apple rápida barato y conveniente, sin embargo todos ellos necesitan confiar en una empresa con todos sus datos, y la necesidad de una razonable conexión rápida a internet.

  • Git / subversion - Utilizar un sistema de control de origen directamente. Completamente manual y puede ser un poco complejo pero enfoque muy popular con algunos usuarios familiarizados con estos sistemas de utilizarlos como herramientas de programación.

  • CloudFS - sincronice todo un sistema de archivos de cluster basado en tecnología

  • Montaje NFS - básicamente de su hogar, vive en una máquina y se accede a él a través de la red, no es bueno para los ordenadores portátiles que usted toma con usted. Más info: http://www.linuxjournal.com/article/4880


Factores a considerar en la toma de su decisión:

  • Servidor Central - algunas soluciones requieren un equipo todo el tiempo (o al menos cuando usted necesita sincronizar) para otras máquinas para sincronizar con. Esta podría ser una de sus máquinas existentes, o una máquina separada, tales como NAS. Reloj hacia fuera para el aumento de las facturas de energía.

  • Automático / Manual / Programada - La mejor manera de evitar tener que resolver conflictos, donde algo está cambiado en más de la máquina es tener un programa en cada una de las máquinas que los relojes de los cambios y la sincroniza inmediatamente, de esta manera se reducen las posibilidades de terminar con varias versiones. Con el manual de procesos de usted siempre tiene que recordar para ejecutar la sincronización.

  • Acceso remoto - ¿desea sincronizar lejos de su LAN (también conocido como la casa), pensar acerca de las implicaciones de seguridad de este.

  • Seguridad - ¿sus datos de salir de su red cifrados o no, ¿es segura la transferencia entre las máquinas. ¿Qué pasa si alguien captura de sus datos en movimiento y más tarde el cifrado se encuentra que tiene defectos? Quién controla el servidor que mantiene sus datos, son los datos enccrypted, se puede confiar en terceros? Usted no tiene que hacer unos agujeros en su router para obtener acceso remoto. ¿Cuánto tiempo 'eliminado' y archivos relacionados con meta-datos se queda en el sincronizado de los dispositivos y en el servidor central. Se que la sincronización entre cifrados y no cifrados?

  • Mover carpetas de gran tamaño - las soluciones que he probado todos tengo un problema que al mover / cambiar el nombre de un archivo o de la carpeta de sincronización no entiende esto y lo carga todo de nuevo como nuevo y, a continuación, elimina la copia antigua. Por favor, ayudar y marcar las soluciones anteriores que son capaces de lidiar con esto (yo sospecho que el git soluciones basadas hacer como git no sufren de esto debido a que el contenido de direccionamiento basado en la usa pero no lo sabemos con certeza como no lo he utilizado).

  • Capacidad de disco

  • Copias de seguridad - sincronización no es la copia de seguridad. Borrar un archivo importante por error, y muchos de los anteriores alegremente eliminar todas las otras copias. Recomiendo la lectura de Mat Honan la pieza en ser hackeado para una buena cuenta de lo que puede suceder si pones toda tu digitales huevos en una digital de la cesta, por así decirlo.


Recomiendo que no se la sincronización de toda la carpeta de inicio, pero en lugar de escoger carpetas específicas para sincronizar como Documents/, Pictures/ etc. Esto ayudará a evitar el dolor de ser forzados a lidiar con la velocidad / rendimiento / problemas de espacio en disco de forma automática la sincronización de todo. También se evita tener que mantener listas de exclusión.

Yo sigo tratando de encontrar algo que funcione para mí, personalmente, voy a tratar de mantener esta respuesta hasta la fecha con información útil. He agregado la información de todas las otras respuestas en una respuesta completa.

Referencias:

  • LinuxFormat - febrero de 2014 LXF180 p31", Organizado Almacenamiento Roundup"

27voto

ramayac Puntos 1830

Unison podría ser un buen candidato:

Unison es un archivo de la herramienta de sincronización de para Unix y Windows. Se permite que dos réplicas de una colección de archivos y los directorios se almacenan en diferentes hosts (o discos diferentes en el mismo host), modificado por separado y, a continuación, llevado hasta la fecha mediante la propagación de la los cambios en cada réplica a la otra.

Ya hace 2 vías sincroniza. Consulte actualización de abajo.

He aprendido que hay muy pocas cosas rsync puede hacer, y que probablemente puede proporcionar una igual o mejor solución, pero vas a tener que esperar un rsync de expertos para subir por esa solución.

Actualización: Sí, Unison puede sincronizar más de 2 máquinas. Desde su manual de usuario:

El uso de Unison para Sincronizar Más De Dos Máquinas

Unison está diseñada para sincronizar los pares de réplicas. Sin embargo, es posible utilizarlo para mantener grandes grupos de máquinas en la sincronización mediante la realización de múltiples pares sincronizaciones.

Si usted necesita para hacer esto, la forma más confiable para establecer las cosas es organizar las máquinas en una "topología en estrella," con una máquina designada como el "centro" y el resto como "radios" y con cada rayo de la máquina de sincronización sólo con el concentrador. La gran ventaja de la topología en estrella es que se elimina la posibilidad de confundir a los "falsos conflictos", derivado del hecho de que un archivo independiente que se mantiene al Unísono para cada par de hosts que se sincroniza.

19voto

Candidasa Puntos 1560

¿Y a poner sus archivos en un sistema de control de versiones como SubVersion o git?

Yo no la versión de mi casa entera dir, pero sólo un puñado subdirectorios con algunas cosas importantes. Pero estoy pensando en convertir a git, ya que parecen ser mejores para este tipo de trabajo. (una búsqueda rápida se va a enviar en la dirección correcta).

Buena suerte


Actualización: Un agradable efecto secundario de git es que es fácil tener el ordenador de archivos específicos, ya que sólo necesita disponer de una sucursal de ese equipo (y en git se puede conseguir que la por defecto). Así que usted no necesita tener exactamente los mismos archivos en todo el equipo, que sólo debe ser similar, y tienen en común un "principal" de la rama con las cosas que usted desea en todos los diferentes equipos.

6voto

Juriy Puntos 133

Su principal problema al intentar hacer esto es decidir cómo combinar los cambios, propagar elimina, y resolver conflictos. Esto es difícil de hacer en una forma totalmente automatizada, especialmente si tienes un 3 configuración del ordenador utilizado por varias personas.

Si separas a los usuarios que las cosas se ponen mucho más simple. Ya que un usuario no puede estar en dos lugares a la vez (y por lo tanto generar conflictos), a continuación, configuración de rsync trabajo para que se ejecute en el inicio de sesión a los "cambios" y cierre de sesión para "enviar cambios" ... a uno de sus equipos, que sería el maestro ... así que en este nivel de detalle que sería la sincronización de /home/miusuario cada vez más que la totalidad de /home/. Una mejora añadida (en caso de que la gente no salir de la sesión) sería ejecutar el script de inserción después de un corto período de inactividad.

Hay un montón de otras posibles soluciones, pero ninguna que por arte de magia resolver este problema tan lejos como soy consciente de que. El primer paso es, probablemente, para pensar en cómo utilizar las máquinas y vienen con una sincronización de política para adaptarse a su comportamiento del usuario.

5voto

jspeaks Puntos 56

Creo que usted puede lograr lo que quieres mejor por una carpeta común de inicio de montaje de NFS. Compruebe hacia fuera este artículo http://www.linuxjournal.com/article/4880

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: