Nun, ich hatte die gleiche Art von Problem und es ist möglich, diese zusammen zu verwenden: rsync, SSH Passwordless Login, Watchdog (ein Python-Sync-Dienstprogramm) und Terminal Notifier (ein mit Ruby erstelltes OS X-Benachrichtigungsdienstprogramm. Nicht erforderlich, aber hilfreich wenn die Synchronisation beendet ist).
Ich habe den Schlüssel für die passwortlose Anmeldung mithilfe dieses Tutorials aus dem Dreamhost-Wiki erstellt: http://cl.ly/MIw5
1.1. Wenn Sie fertig sind, testen Sie, ob alles in Ordnung ist. Wenn Sie sich nicht ohne Passwort anmelden können, müssen Sie möglicherweise afp mount ausprobieren. Dreamhost (wo sich meine Site befindet) erlaubt keine AFP-Bereitstellung, aber die passwortlose Anmeldung. Geben Sie im Terminal Folgendes ein:
ssh username@host.com
Sie sollten sich anmelden, ohne dass Sie nach einem Passwort gefragt werden: P
Ich habe den Terminal Notifier von der Github-Seite installiert: http://cl.ly/MJ5x
2.1. Ich habe den Gem-Installer-Befehl verwendet. Geben Sie im Terminal Folgendes ein:
gem install terminal-notifier
2.3. Testen Sie, ob die Benachrichtigung funktioniert. Geben Sie im Terminal Folgendes ein:
terminal-notifier -message "Starting sync"
Erstellen Sie ein sh-Skript, um die rsync + -benachrichtigung zu testen. Speichern Sie es an einem beliebigen Ort mit dem gewünschten Namen. In diesem Beispiel werde ich es nennen ~ / Scripts / sync.sh Ich habe die Erweiterung ".sh" verwendet, weiß aber nicht, ob sie benötigt wird.
#!/bin/bash
terminal-notifier -message "Starting sync"
rsync -azP ~/Sites/folder/ user@host.com:site_folder/
terminal-notifier -message "Sync has finished"
3.1. Denken Sie daran, diesem sh-Skript die Ausführungserlaubnis zu erteilen. Geben Sie im Terminal Folgendes ein:
sudo chmod 777 ~/Scripts/sync.sh
3.2. Führen Sie das Skript aus und überprüfen Sie, ob die Nachrichten korrekt angezeigt werden und der rsync Ihren lokalen Ordner tatsächlich mit dem Remote-Ordner synchronisiert.
Schließlich habe ich Watchdog von der Github-Seite heruntergeladen und installiert: http://cl.ly/MJfb
4.1. Zuerst habe ich die libyaml-Abhängigkeit mit Brew installiert (es gibt eine Menge Hilfe bei der Installation von Brew - wie eine "Aptitude" für OS X). Geben Sie im Terminal Folgendes ein:
brew install libyaml
4.2. Dann habe ich den Befehl "easy_install" verwendet. Gehen Sie in den Ordner von Watchdog und geben Sie Terminal ein:
easy_install watchdog
Jetzt ist alles installiert! Gehen Sie zu dem Ordner, den Sie synchronisieren möchten , Ändern Sie diesen Code nach Ihren Wünschen , und geben Sie Terminal ein:
watchmedo shell-command
--patterns="*.php;*.txt;*.js;*.css" \
--recursive \
--command='~/Scripts/Sync.sh' \
.
Es muss sein GENAU Auf diese Weise müssen Sie mit den Schrägstrichen und Zeilenumbrüchen diese Zeilen in einen Texteditor kopieren, das Skript ändern, das Terminal einfügen und die Eingabetaste drücken.
Ich habe versucht, ohne die Zeilenumbrüche, und es funktioniert nicht!
Auf meinem Mac wird immer eine Fehlermeldung angezeigt, die jedoch nichts zu bewirken scheint:
/Library/Python/2.7/site-packages/argh-0.22.0-py2.7.egg/argh/completion.py:84: UserWarning: Bash completion not available. Install argcomplete.
Nehmen Sie nun einige Änderungen in einer Datei im Ordner vor und beobachten Sie die Magie!
sync
ist ein System-Dienstprogramm (zumindest auf jedem * nix, den ich gesehen habe; ich bin mir nicht sicher über OSX, aber ich sehe keine Gründe, warum es nicht da wäre). Möglicherweise möchten Sie Ihrem Ausschnitt einen anderen Namen geben. Dies geht auch nicht über SSH, was das OP wollte; einfach vorbei-e ssh
zu rsync sollte das beheben.