Lokale Dateien automatisch mit Remote synchronisieren

Gibt es OSX-Tools, die Dateiänderungen in einem Verzeichnis überwachen und diese Änderungen dann mit einem Remote-Server synchronisieren (SFTP) können?

Grundsätzlich möchte ich Dateien lokal bearbeiten (egal welche Dateien, welches Programm) und sie automatisch auf den Server hochladen lassen.

Rsync kann ein Verzeichnis nicht selbst auf Änderungen überwachen, und ich kann Lyncd anscheinend nicht dazu bringen, unter OSX ausgeführt zu werden, da kein Inotify-Tool vorhanden ist.

Irgendwelche Ideen?

Gehört vielleicht auf SU?
Ich bin anderer Meinung - ich denke, dies ist eine OS X-Frage und gehört hierher.

Antworten (5)

Mir sind nur proprietäre Systeme wie DropBox bekannt.

Aber es scheint, als könnte dies ziemlich einfach gemacht werden, indem kqueue verwendet wird, um Dateiänderungen zu erkennen, und einige Sekunden später rsync ausgeführt wird.

RE: ".. Grundsätzlich möchte ich Dateien lokal bearbeiten (egal welche Dateien, welches Programm) und sie automatisch auf den Server hochladen."

Sie haben Glück, DoubleDown wird genau das tun, was Sie angegeben haben:

Direkter Download für DoubleDown hier .

DoubleDown-Download-Seite mit weiteren Informationen hier .

Weitere Informationen zu DoubleDown:

Doubledown behält eine vollständige lokale Kopie des Remote-Verzeichnisses, das Sie synchronisieren, sodass alle Ihre lokalen Operationen blitzschnell sind. Nach einer anfänglichen Synchronisierung (wobei darauf geachtet wird, keine lokalen Änderungen zu überschreiben), wird Doubledown vom FSEvents-Framework von Mac OS X über Änderungen benachrichtigt und reagiert, indem es Dateien oder Verzeichnisse nach Bedarf erstellt, hochlädt und entfernt.

Hoffe das hilft.

Wenn Sie gerne ein Skript schreiben, können Sie mit Ordneraktionen das erreichen, was Sie benötigen:

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

Die folgende Seite scheint genau die Lösung zu bieten, die Sie suchen:

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

Hier ist ein Artikel darüber, wie man genau das mit einem Ruby-Skript macht.

Es verwendet FSEvent , das inotify - Pendant auf Mac OS X.

Verwenden Sie entrdas Befehlszeilentool, um nach Dateiänderungen in einem Verzeichnis zu suchen. Es hat eine spezielle -dOption, um auf Ereignisse zu reagieren, wenn eine neue Datei zu einem Verzeichnis hinzugefügt wird. Die Implikation ist, dass eine neue Datei beendet werden muss, damit eine externe Shell-Schleife das Dateisystem erneut scannen kann. Wenn -dsie also verwendet wird, müssen Sie sie mit einer Schleife verwenden. Zum Beispiel (um nach Änderungen im path/Verzeichnis zu suchen):

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

Installation über Brew: brew install entr.