Bueno, tuve el mismo tipo de problema y es posible usarlos juntos: rsync, SSH Passwordless Login, Watchdog (una utilidad de sincronización de Python) y Terminal Notifier (una utilidad de notificación OS X hecha con Ruby. No es necesario, pero ayuda a saber cuando la sincronización ha terminado).
Creé la clave para iniciar sesión sin contraseña utilizando este tutorial de Dreamhost wiki: http://cl.ly/MIw5
1.1. Cuando termine, pruebe si todo está bien ... si no puede iniciar sesión sin contraseña, tal vez tenga que probar afp mount. Dreamhost (donde está mi sitio) no permite el montaje afp, pero permite el inicio de sesión sin contraseña. En la terminal, escriba:
ssh username@host.com
Debe iniciar sesión sin que se le pidan contraseñas: P
Instalé el Terminal Notifier desde la página de Github: http://cl.ly/MJ5x
2.1. Usé el comando de instalación de Gem. En Terminal, escriba:
gem install terminal-notifier
2.3. Comprueba si la notificación funciona. En Terminal, escribe:
terminal-notifier -message "Starting sync"
Cree un script sh para probar la notificación rsync +. Guárdalo donde quieras, con el nombre que quieras. En este ejemplo, lo llamaré ~ / Scripts / sync.sh Usé la extensión ".sh, pero no sé si es necesario.
#!/bin/bash
terminal-notifier -message "Starting sync"
rsync -azP ~/Sites/folder/ user@host.com:site_folder/
terminal-notifier -message "Sync has finished"
3.1. Recuerde dar permiso de ejecución a este script sh. En Terminal, escriba:
sudo chmod 777 ~/Scripts/sync.sh
3.2. Ejecute el script y verifique si los mensajes se muestran correctamente y el rsync realmente sincroniza su carpeta local con la carpeta remota.
Finalmente, descargué e instalé Watchdog desde la página de Github: http://cl.ly/MJfb
4.1. Primero, instalé la dependencia libyaml usando Brew (hay mucha ayuda sobre cómo instalar Brew, como una "aptitud" para OS X). En Terminal, escriba:
brew install libyaml
4.2. Luego, utilicé el "comando easy_install". Vaya a la carpeta de Watchdog y escriba Terminal:
easy_install watchdog
¡Ahora todo está instalado! Vaya a la carpeta que desea sincronizar , cambie este código a sus necesidades y escriba Terminal:
watchmedo shell-command
--patterns="*.php;*.txt;*.js;*.css" \
--recursive \
--command='~/Scripts/Sync.sh' \
.
Tiene que ser EXACTAMENTE de esta manera, con las barras y los saltos de línea, por lo que tendrá que copiar estas líneas en un editor de texto, cambiar el script, pegar en la terminal y presionar Intro.
Lo intenté sin saltos de línea, ¡y no funciona!
En mi Mac, siempre recibo un error, pero no parece afectar nada:
/Library/Python/2.7/site-packages/argh-0.22.0-py2.7.egg/argh/completion.py:84: UserWarning: Bash completion not available. Install argcomplete.
Ahora, hizo algunos cambios en un archivo dentro de la carpeta, ¡y mira la magia!
sync
es una utilidad del sistema (al menos en cada * nix que he visto; no estoy seguro acerca de OSX, pero no veo ninguna razón por la que no estaría allí). Es posible que desee darle a su recortado un nombre diferente. Además, esto no pasa por SSH, que el OP quería; simplemente pasar-e ssh
a rsync debería arreglar eso.