Eh bien, j'ai eu le même genre de problème et il est possible de les utiliser ensemble: rsync, SSH Passwordless Login, Watchdog (un utilitaire de synchronisation Python) et Terminal Notifier (un utilitaire de notification OS X fait avec Ruby. Pas nécessaire, mais aide à savoir lorsque la synchronisation est terminée).
J'ai créé la clé de la connexion sans mot de passe en utilisant ce tutoriel du wiki Dreamhost: http://cl.ly/MIw5
1.1. Lorsque vous avez terminé, testez si tout va bien… si vous ne pouvez pas vous connecter sans mot de passe, vous devrez peut-être essayer afp mount. Dreamhost (où se trouve mon site) n'autorise pas le montage afp, mais autorise la connexion sans mot de passe. Dans le terminal, saisissez:
ssh username@host.com
Vous devez vous connecter sans demander de mot de passe: P
J'ai installé le Terminal Notifier à partir de la page Github: http://cl.ly/MJ5x
2.1. J'ai utilisé la commande d'installation de Gem. Dans Terminal, saisissez:
gem install terminal-notifier
2.3. Testez si la notification fonctionne. Dans Terminal, saisissez:
terminal-notifier -message "Starting sync"
Créez un script sh pour tester la notification rsync +. Enregistrez-le où vous voulez, avec le nom que vous aimez. Dans cet exemple, je l'appellerai ~ / Scripts / sync.sh J'ai utilisé l'extension ".sh, mais je ne sais pas si elle est nécessaire.
#!/bin/bash
terminal-notifier -message "Starting sync"
rsync -azP ~/Sites/folder/ user@host.com:site_folder/
terminal-notifier -message "Sync has finished"
3.1. N'oubliez pas de donner la permission d'exécution à ce script sh. Dans Terminal, saisissez:
sudo chmod 777 ~/Scripts/sync.sh
3.2. Exécutez le script et vérifiez si les messages s'affichent correctement et que rsync synchronise réellement votre dossier local avec le dossier distant.
Enfin, j'ai téléchargé et installé Watchdog sur la page Github: http://cl.ly/MJfb
4.1. Tout d'abord, j'ai installé la dépendance libyaml en utilisant Brew (il y a beaucoup d'aide pour installer Brew - comme une "aptitude" pour OS X). Dans Terminal, saisissez:
brew install libyaml
4.2. Ensuite, j'ai utilisé la "commande easy_install". Allez dans le dossier Watchdog et tapez Terminal:
easy_install watchdog
Maintenant, tout est installé! Accédez au dossier que vous souhaitez synchroniser , modifiez ce code en fonction de vos besoins et saisissez Terminal:
watchmedo shell-command
--patterns="*.php;*.txt;*.js;*.css" \
--recursive \
--command='~/Scripts/Sync.sh' \
.
Cela doit être EXACTEMENT de cette façon, avec les barres obliques et les sauts de ligne, vous devrez donc copier ces lignes dans un éditeur de texte, changer le script, coller dans le terminal et appuyer sur Retour.
J'ai essayé sans les sauts de ligne, et ça ne marche pas!
Sur mon Mac, je reçois toujours une erreur, mais cela ne semble rien affecter:
/Library/Python/2.7/site-packages/argh-0.22.0-py2.7.egg/argh/completion.py:84: UserWarning: Bash completion not available. Install argcomplete.
Maintenant, faites quelques changements dans un fichier à l'intérieur du dossier, et regardez la magie!
sync
s'agit d'un utilitaire système (au moins sur tous les * nix que j'ai vus; je ne suis pas sûr d'OSX, mais ne voyez pas pourquoi il ne serait pas là). Vous voudrez peut-être donner à votre snipé un nom différent. De plus, cela ne passe pas par SSH, ce que le PO voulait; le simple passage-e ssh
à rsync devrait résoudre ce problème.