Sincronización automática de archivos locales a control remoto

¿Hay alguna herramienta OSX que pueda observar los cambios de archivos en un directorio y luego sincronizar (SFTP) esos cambios con un servidor remoto?

Básicamente, quiero editar archivos localmente (cualquier archivo, cualquier programa) y hacer que se carguen automáticamente en el servidor.

Rsync no puede ver un directorio en busca de cambios por sí mismo, y parece que no puedo hacer que lyncd se ejecute en osx, debido a que no hay una herramienta de inotificación.

¿Algunas ideas?

¿Quizás pertenece a SU?
No estoy de acuerdo, creo que esta es una pregunta de OS X y pertenece aquí.

Respuestas (5)

Solo conozco sistemas propietarios como DropBox.

Pero parece que esto podría hacerse con bastante facilidad, usando kqueue para detectar cambios en los archivos y ejecutando rsync unos segundos más tarde.

RE: ".. Básicamente, quiero editar archivos localmente (cualesquiera que sean los archivos, cualquier programa) y hacer que se carguen automáticamente en el servidor".

Estás de suerte, DoubleDown hará exactamente lo que especificaste:

Descarga directa de DoubleDown aquí .

Página de descarga de DoubleDown con más información aquí .

Más información sobre DoubleDown:

Doubledown mantiene una copia local completa del directorio remoto que está sincronizando para que todas sus operaciones locales sean ultrarrápidas. Después de realizar una sincronización inicial (con cuidado de no bloquear ningún cambio local), el marco FSEvents de Mac OS X notifica a Doubledown sobre los cambios y responde creando, cargando y eliminando archivos o directorios según sea necesario.

Espero que esto ayude.

Si está feliz de escribir un guión, las acciones de carpeta le permiten lograr lo que necesita:

http://www.simplehelp.net/2007/01/30/folder-actions-for-os-x-explained-with-real-world-examples/

La siguiente página parece ofrecer exactamente la solución que está buscando:

http://sites.google.com/site/andreatagliasacchi/blog/osxautomaticsyncwithfolderactions

Aquí hay un artículo sobre cómo hacer exactamente eso con un script de Ruby.

Utiliza FSEvent , la contraparte de inotify en Mac OS X.

Utilice entrla herramienta de línea de comandos para observar los cambios de archivos en un directorio. Tiene una -dopción especial para reaccionar a los eventos cuando se agrega un nuevo archivo a un directorio. La implicación es que si aparece un nuevo archivo, debe salir para permitir que un ciclo de shell externo vuelva a escanear el sistema de archivos, por lo que cuando -dse usa, debe usarlo con un ciclo. Por ejemplo (para verificar cambios en el path/directorio):

$ while true; do
> find path/ | entr -d sh -c 'rsync -vuar path/ example.com:. && echo Updated'
> done

Instalación vía Brew: brew install entr.