¿Cómo sincronizar la carpeta de inicio entre varias computadoras?

¿Cómo sincronizar la carpeta de inicio entre varias computadoras?

Tengo tres computadoras en casa y me gustaría /home/sincronizar el árbol de carpetas entre las tres.
Cualquier archivo/carpeta (excepto los ocultos) que se modifica/añade/elimina en una de las tres computadoras se actualiza en las otras dos.

Esrsyncsuficiente para hacer esto? ¿y cómo?

Respuesta1

Aquí hay una lista de cosas que potencialmente podrían resolver este problema, cada una equilibra las compensaciones que tienes que hacer de manera diferente, por lo que tendrás que tomar tus propias decisiones y probar las cosas por ti mismo:

  • Unísono- como mencionaron otros, esto se ejecuta manualmente, pero es muy rápido, confiable y efectivo. Requiere que ambas máquinas estén sincronizadas para estar encendidas al mismo tiempo. Tiene una interfaz de usuario agradable que le permite lidiar con los conflictos casi inevitables y rastrea y propaga las eliminaciones correctamente. La aplicación/paquete gráfico se llama unison-gtk.

  • propia nube- El almacenamiento en la nube se ejecuta en su propio servidor. Necesitará una máquina para dejarlo encendido. Requiere una cantidad razonable de configuración. Ejecuta un servidor web Apache 2 completo y una base de datos SqlLite o MySQL en el servidor. Funciona de manera similar a Dropbox con un cliente de escritorio, pero el servidor está bajo tu control. editar: OwnCloud ha realizado recientemente algunos cambios en la forma en que se ejecuta el proyecto y ahora tiene un nuevo código completamente abierto (es decir, sin una edición 'empresarial' de código cerrado) bajo la apariencia deSiguienteNube, (mira estoentrevista en youtubecon el desarrollador original de OwnCloud para obtener más detalles).

  • brillarcompartir- utiliza git para mantener los archivos sincronizados. Según la página de inicio: bueno para muchos archivos más pequeños, no bueno para muchos archivos grandes, como música o colecciones de fotografías.

  • archivo marino- Proporciona un componente de servidor que puede instalar en una máquina local. Seafile utiliza un modelo de datossimilar a gitpara realizar un seguimiento de los cambios. Proporciona clientes de sincronización para computadoras de escritorio, tabletas y teléfonos inteligentes. Puede encontrar una publicación de blog que describe la configuración enhttp://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • osincronizado- "... herramienta de sincronización de archivos bidireccional escrita en bash y basada en rsync. Funciona en directorios locales y/o remotos a través de túneles ssh. Está destinada principalmente a ejecutarse como tarea cron" (texto del sitio web)

  • Carpeta de energía- Proyecto GPL v2 basado en Java. El sitio web principal ofrece ofertas comerciales, por lo que no está claro cómo utilizar el archivo .jar proporcionado.

  • sincronización- rápido y efectivo y existe desde hace décadas, sin embargo, no mantiene un historial por lo que tienes que elegir una dirección para decidir si un archivo es nuevo o eliminado. Se encuentran disponibles herramientas gráficas comogwRsync.

  • Lsyncd- monitorea carpetas/archivos para activar la replicación rsync

  • dvcs-autosync- escrito en Python, usa git para almacenar y compartir cambios entre máquinas y XMPP para comunicar cambios.

  • anexo git- herramienta de línea de comando para desviar archivos, basada en git. Hay un tutorial ilustrativo aquí:http://git-annex.branchable.com/walkthrough/

  • Tonido- software gratuito. Proporciona una aplicación de escritorio que compartirá archivos con otros dispositivos. También proporcione ofertas comerciales en la nube y el conector para computadora TonidoPlug.

  • Sincronización BitTorrent(software gratuito): sincronización de archivos punto a punto basada en BitTorrent. No sé mucho sobre esto ya que no lo usaré debido a que no es de código abierto y no confío en que mantenga mis datos dentro de mi LAN. No dude en editar esta respuesta con mejor información/experiencias reales.

  • Sincronizar cosa- Desarrollado como una alternativa de código abierto a BitTorrent Sync. Actualmente carece de algunas de las funciones avanzadas de BitTorrent Sync, como pares que no son de confianza. Está en desarrollo activo.

  • Los servicios comerciales alojados como Dropbox, Ubuntu One, Google Drive, Apple iCloud son rápidos, económicos y convenientes; sin embargo, todos requieren confiar todos sus datos a una empresa y necesitan una conexión a Internet razonablemente rápida.

  • git/subversión- Utilizar un sistema de control de fuente directamente. Completamente manual y puede ser un enfoque un poco complejo pero popular entre algunos usuarios familiarizados con estos sistemas al usarlos como herramientas de programación.

  • NubeFS- sincronizar un sistema de archivos completo, basado en tecnología de clúster

  • Montaje NFS: básicamente, su hogar reside en una máquina y accede a ella a través de la red, lo que no es bueno para las computadoras portátiles que lleva consigo. Más información:http://www.linuxjournal.com/article/4880


Factores a considerar al tomar su decisión:

  • Servidor central: algunas soluciones requieren que una máquina esté encendida todo el tiempo (o al menos cuando necesite sincronizar) para que otras máquinas puedan sincronizarse. Esta podría ser una de sus máquinas existentes o una máquina separada, como un NAS. Tenga cuidado con el aumento de las facturas de energía.

  • Automático/Manual/Programado: la mejor manera de evitar tener que resolver conflictos en los que algo se cambia en más de una máquina es tener un programa en cada máquina que observe los cambios y se sincronice inmediatamente, de esta manera se reduce la oportunidad de terminar con múltiples versiones. Con los procesos manuales siempre debes recordar ejecutar la sincronización.

  • Acceso remoto: si desea sincronizar fuera de su LAN (también conocida como casa), piense en las implicaciones de seguridad que esto tiene.

  • Seguridad: ¿sus datos salen de su red cifrados o no? ¿Qué tan segura es la transferencia entre máquinas? ¿Qué pasa si alguien captura sus datos en movimiento y luego se descubre que el cifrado tiene fallas? ¿Quién controla el servidor que guarda sus datos? ¿Están los datos cifrados? ¿Puede confiar en terceros? ¿Tiene que hacer agujeros en su enrutador para obtener acceso remoto? ¿Cuánto tiempo permanecen los archivos "eliminados" y los metadatos relacionados en los dispositivos sincronizados y en el servidor central? ¿Está sincronizando entre almacenamiento cifrado y no cifrado?

  • Mover carpetas grandes: todas las soluciones que he probado tienen el problema de que cuando mueves/cambias el nombre de un archivo o carpeta, la sincronización no entiende esto y lo carga nuevamente como nuevo y luego elimina la copia anterior.

  • Capacidad del disco

  • Copias de seguridad: la sincronización no es una copia de seguridad. Elimine un archivo importante por error y muchos de los anteriores eliminarán alegremente todas sus otras copias. recomiendo leerEl artículo de Mat Honan sobre el hackeopara una buena explicación de lo que puede suceder si pones todos tus huevos digitales en una sola canasta digital, por así decirlo.


Recomiendo no sincronizar toda la carpeta de inicio, sino elegir carpetas específicas para sincronizar, como Documents/, Pictures/etc. Esto evitará la molestia de verse obligado a lidiar con los problemas de velocidad/rendimiento/espacio en disco de sincronizar todo automáticamente. También evita tener que mantener listas de exclusión.

A medida que siga intentando encontrar algo que funcione para mí personalmente, intentaré mantener esta respuesta actualizada con información útil. He agregado la información de todas las demás respuestas en una respuesta completa.

Referencias:

  • LinuxFormat: febrero de 2014 LXF180 p31, "Resumen de almacenamiento alojado"

hackear/todos/

Respuesta2

Unísonopodría ser un buen candidato:

Unison es una herramienta de sincronización de archivos para Unix y Windows.Permite almacenar dos réplicas de una colección de archivos y directorios en diferentes hosts (o diferentes discos en el mismo host), modificarlas por separado y luego actualizarlas propagando los cambios en cada réplica a la otra.

Ya realiza sincronizaciones bidireccionales. Vea la actualización a continuación.

He aprendido que hay muy pocas cosas que rsync no puede hacer y probablemente pueda proporcionar una solución igual o mejor, pero tendrás que esperar a que aparezca un experto en rsync para encontrar esa solución.

Actualizar:Sí, Unison puede sincronizar más de 2 máquinas. De susmanual de usuario:

Uso de Unison para sincronizar más de dos máquinas

Unison está diseñado para sincronizar pares de réplicas. Sin embargo, es posible utilizarlo para mantener sincronizados grupos más grandes de máquinas realizando múltiples sincronizaciones por pares.

Si necesita hacer esto, la forma más confiable de configurar las cosas es organizar las máquinas en una “topología en estrella”, con una máquina designada como “centro” y el resto como “radios”, y con cada máquina de radios sincronizándose. Sólo con el centro. La gran ventaja de la topología en estrella es que elimina la posibilidad de "conflictos espurios" confusos que surgen del hecho de que Unison mantiene un archivo separado para cada par de hosts que sincroniza.

Respuesta3

¿Qué tal si pones tus archivos en un sistema de control de versiones como SubVersion o git?

No versiono todo mi directorio de inicio, sino solo algunos subdirectorios con algunas cosas importantes. Pero estoy pensando en convertirme a git ya que parece ser mejor para este tipo de trabajo. (una búsqueda rápida te llevará en la dirección correcta).

Buena suerte


Actualizar: Un buen efecto secundario de git es que es fácil tener archivos específicos de computadora, ya que solo necesitas tener una rama para esa computadora (y en git la obtienes de forma predeterminada). Por lo tanto, no es necesario tener exactamente los mismos archivos en todas las computadoras, solo deben ser similares y tener una rama "principal" común con el material que desea en todas las diferentes computadoras.

Respuesta4

Creo que puedes lograr mejor lo que deseas montando NFS en una carpeta de inicio común. Mira este artículohttp://www.linuxjournal.com/article/4880

información relacionada