Aquí hay una lista de cosas que podrían resolver este problema, cada una equilibra las compensaciones que tiene que hacer de manera diferente, por lo que tendrá que tomar sus propias decisiones y probar las cosas por sí mismo:
Unison : como lo mencionaron otros, esto se ejecuta manualmente, pero es muy rápido, confiable y efectivo. Requiere que ambas máquinas se sincronicen 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.
OwnCloud : el almacenamiento en la nube se ejecuta en su propio servidor. Necesitarás una máquina para dejar. 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 su control. editar: OwnCloud recientemente ha experimentado algunos cambios en la forma en que se ejecuta el proyecto, y ahora tiene una nueva fuente de código abierto (es decir, no hay edición de 'empresa' de código cerrado) bajo el disfraz de NextCloud , (vea esta entrevista de YouTube con el desarrollador original de OwnCloud para más detalles).
SparkleShare : usa git para mantener los archivos sincronizados. Según la página de inicio: bueno para muchos archivos más pequeños, no es bueno para muchos archivos grandes como música o colección de fotos.
Seafile : proporciona un componente de servidor que puede instalar en una máquina local. Seafile utiliza un modelo de datos similar a git para rastrear cambios. Proporciona clientes de sincronización para computadoras de escritorio, tabletas y teléfonos inteligentes. Se puede encontrar una publicación de blog que describe la configuración en http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/
Osync - "... herramienta bidireccional de sincronización de archivos escrita en bash y basada en rsync. Funciona en directorios locales y / o remotos a través de túneles ssh. Está dirigida principalmente para ser lanzada como tarea cron" (texto del sitio web)
PowerFolder : proyecto GPL v2 basado en Java. El sitio web principal impulsa las ofertas comerciales, por lo que no está claro cómo usar el archivo .jar proporcionado.
Rsync : rápido y efectivo, y ha existido durante décadas, sin embargo, no mantiene un historial, por lo que debe elegir una dirección para decidir si un archivo es nuevo o eliminado. Las herramientas gráficas están disponibles, como gwRsync .
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 los cambios.
git-annex - herramienta de línea de comando para desviar archivos, basada en git. Aquí hay un tutorial ilustrativo: http://git-annex.branchable.com/walkthrough/
Tonido - freeware. Proporciona una aplicación de escritorio que compartirá archivos con otros dispositivos. También proporcione ofertas comerciales en la nube y la computadora de conexión TonidoPlug.
Sincronización de BitTorrent (freeware): 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.
SyncThing : desarrollado como una alternativa de código abierto para BitTorrent Sync. Actualmente carece de algunas de las funciones avanzadas de BitTorrent Sync, como los pares no confiables. Está en desarrollo activo.
Los servicios comerciales alojados como Dropbox, Ubuntu One, Google Drive, Apple iCloud son rápidos, baratos y convenientes, sin embargo, todos requieren confiar en una empresa con todos sus datos y necesitan una conexión a Internet razonablemente rápida.
Git / subversion : use un sistema de control de fuente directamente. Completamente manual y puede ser un enfoque poco complejo pero popular con algunos usuarios familiarizados con estos sistemas al usarlos como herramientas de programación.
CloudFS : sincronice todo un sistema de archivos, basado en tecnología de clúster
Montaje NFS: básicamente su hogar vive en una máquina y usted accede a través de la red, no es bueno para las computadoras portátiles que lleva consigo. Más información: http://www.linuxjournal.com/article/4880
Servidor central: algunas soluciones requieren que una máquina esté encendida todo el tiempo (o al menos cuando necesita sincronizar) para que otras máquinas se sincronicen. Esta podría ser una de sus máquinas existentes, o una máquina separada como un NAS. 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 se cambia algo más que una máquina es tener un programa en cada máquina que esté atento a los cambios y se sincronice de inmediato, de esta manera reduce la oportunidad de terminar con múltiples versiones. Con los procesos manuales, siempre debe recordar ejecutar la sincronización.
Acceso remoto: si desea sincronizar lejos de su LAN (también conocido como hogar), piense en las implicaciones de seguridad de esto.
Seguridad: sus datos dejan su red encriptada o no, cuán segura es la transferencia entre máquinas. ¿Qué sucede si alguien captura sus datos en movimiento y luego se descubre que el cifrado tiene fallas? ¿Quién controla el servidor que mantiene sus datos? ¿Los datos están cifrados? ¿Puede confiar en terceros? ¿Tienes que hacer agujeros en tu 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ás sincronizando entre almacenamiento cifrado y no cifrado?
Mover carpetas grandes: todas las soluciones que he probado tienen el problema de que cuando mueve / cambia el nombre de un archivo o carpeta, la sincronización no comprende esto y lo carga nuevamente como nuevo y luego elimina la copia anterior. Por favor, ayude marcando las soluciones anteriores que sean capaces de lidiar con esto (sospecho que las soluciones basadas en git hacen lo que git no sufre debido a la dirección basada en contenido que usa, pero no lo sé con certeza ya que no tengo No los usé).
Capacidad de 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 leer el artículo de Mat Honan sobre cómo ser hackeado para una buena explicación de lo que puede suceder si pones todos tus huevos digitales en una 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á el dolor de verse obligado a lidiar con los problemas de velocidad / rendimiento / espacio en disco de sincronizar automáticamente todo. También evita tener que mantener listas de exclusión.
A medida que continúe intentando encontrar algo que me funcione personalmente, intentaré mantener esta respuesta actualizada con información útil. He agregado la información de todas las otras respuestas en una respuesta completa.