Ich komme hauptsächlich aus einem Windows-Hintergrund und migriere auf einen Mac. Ich habe WinSCP verwendet und einen vorgestellten namens geliebt "Remote-Verzeichnis auf dem neuesten Stand halten" .
Hier ist die Frage: Gibt es einen entsprechenden SCP-Client für OSX, der ein Verzeichnis auf Änderungen überwacht und hochlädt, wenn er erkannt wird? Es ist mir egal, ob es sich um einen GUI-Client handelt oder über die Befehlszeile (rsync, ssh usw.).
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.Sie können launchd anstelle von Ordneraktionen verwenden (um Beispielcode zu erhalten, suchen Sie einfach bei Google nach: launchd folder watcher).
Sie können dann das Element "launchd folder watcher" mit einem ähnlichen scp-Skript kombinieren dieses .
Oder verwenden Sie rsync über ssh wie folgt:
Eine kommerzielle plattformübergreifende Softwarelösung finden Sie unter GoodSync .
quelle
Auschecken Übertragen von Panic. Von einer ihrer Blog-Beiträge sagte ein Kommentator:
quelle
Ich bin auf ein Ruby-Skript gestoßen, das genau das tut, was Sie brauchen, aber es muss ein wenig angepasst werden.
Beschreibung:
rsync, wenn sich das Verzeichnis, in dem sich das Skript befindet, mithilfe der OS X FSEvents-API ändert https://gist.github.com/149491
quelle
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 [email protected]
Sie sollten sich anmelden, ohne dass Sie nach einem Passwort gefragt werden: PIch 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/ [email protected]: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:
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!
quelle