Sincronización automática del sistema de archivos entre diferentes máquinas

Uso varias máquinas (una PC de escritorio y una portátil), y estoy buscando una manera de mantener los archivos en los que estoy trabajando sincronizados entre todas las máquinas. La solución debe cumplir estos requisitos:

  • Funciona tanto en Windows como en Linux.
  • Se puede configurar para sincronizar de forma transparente una estructura de carpetas existente
  • Permite el acceso a los archivos incluso cuando no hay conexión a Internet disponible
  • Permite el acceso a los archivos durante el proceso de sincronización
  • Sincroniza archivos sin invocación manual
  • Debe almacenar archivos en un servidor controlado por el usuario (idealmente a través de SSH) y no en la "nube" de otra persona

Lo que también sería bueno tener, pero no es estrictamente necesario para mí:

  • Sincronización de metadatos de archivos (permisos + tiempo de modificación en particular)
  • Software Libre/Libre

Idealmente, iniciaría una máquina, trabajaría en cosas y cuando iniciaría otra caja, todos mis cambios estarían allí como si los hubiera hecho en la caja que acabo de comenzar.

La solución que uso ahora mismo es bastante limitada. Escribí un script de shell simple que invoca rsync para copiar todos los archivos hacia o desde un servidor central a través de SSH. Esto tiene algunos inconvenientes:

  • Si me olvido de enviar mis cambios al servidor, no estarán disponibles en todas las demás máquinas.
  • Si me olvido de extraer los cambios del servidor, la siguiente extracción sobrescribirá todos los cambios que hice localmente.
  • No funciona en Windows sin instalar un paquete enorme como Cygwin.

También exploré ownCloud, pero también tiene algunas desventajas.

  • Requiere una pila de servidor web completa con PHP y una base de datos SQL
  • En Windows, bloquearía los archivos durante la sincronización. Particularmente molesto al escribir o compilar código en intervalos cortos
  • En Linux, utilizó algunas capacidades del sistema de archivos virtual a las que solo se podía acceder fácilmente desde un explorador de archivos gráfico.
git-annex podría ajustarse a sus necesidades. Como todavía no lo he usado, no puedo asegurarlo, pero definitivamente vale la pena echarle un vistazo.
cis.upenn.edu/~bcpierce/unison . Solo para sincronización cruzada sin nubes, torrents y otros terceros

Respuestas (1)

Lo que necesitas es BitTorrent Sync .

Cumple con todos tus requisitos:

  • Funciona tanto en Windows como en Linux.
  • Se puede configurar para sincronizar de forma transparente una estructura de carpetas existente
  • Permite el acceso a los archivos incluso cuando no hay conexión a Internet disponible
  • Permite el acceso a los archivos durante el proceso de sincronización
  • Sincroniza archivos sin invocación manual

También satisface su requisito de "Debe almacenar archivos en un servidor controlado por el usuario (idealmente a través de SSH) y no en la nube de otra persona", pero lo hace con más flexibilidad de lo que probablemente imagina. Ni siquiera necesita un servidor; los sistemas simplemente se sincronizan entre sí.

Aquí hay una captura de pantalla de la interfaz de usuario:ingrese la descripción de la imagen aquí

Divulgación: contribuí a las pruebas previas y posteriores al lanzamiento de este producto.

Gracias por tu respuesta. El sitio web habla de "Transferencia de archivos de dispositivo a dispositivo": ¿cómo funciona si una de las máquinas está apagada? Si no hay servidor, ¿cómo obtiene la máquina B los cambios de la máquina A cuando la máquina A está apagada?
Buena pregunta. Cuando la máquina A se vuelva a encender, se sincronizarán. La alternativa es configurar la máquina C, que reemplaza al servidor tradicional. En este caso, las máquinas A, B y C se mantienen automáticamente sincronizadas, con la máquina C siempre encendida, actuando así como un servidor. La ventaja es que la máquina C es en realidad un sistema totalmente utilizable y no tiene que mantenerse aislado como un servidor tradicional. El software BitTorrent Sync es bastante ligero y sorprendentemente bajo en recursos.
Independientemente de la solución que utilice, al menos un sistema debe estar encendido para que comience la sincronización. También uso BitTorrent Sync, para este propósito, con 4 sistemas: un servidor Linux en mi casa, mi computadora portátil de trabajo, mi tableta y mi computadora portátil de casa.