Yah, saya punya masalah yang sama dan mungkin menggunakan ini bersama-sama: rsync, SSH Passwordless Login, Watchdog (utilitas sinkronisasi Python) dan Terminal Notifier (utilitas notifikasi OS X dibuat dengan Ruby. Tidak diperlukan, tetapi membantu untuk mengetahui ketika sinkronisasi selesai).
Saya membuat kunci untuk Login Tanpa Kata Sandi menggunakan tutorial ini dari Dreamhost wiki: http://cl.ly/MIw5
1.1. Ketika Anda selesai, uji apakah semuanya baik-baik saja ... jika Anda tidak dapat Login Tanpa Kata Sandi, mungkin Anda harus mencoba afp mount. Dreamhost (tempat situs saya) tidak mengizinkan afp mount, tetapi memungkinkan Login Tanpa Kata Sandi. Di terminal, ketik:
ssh username@host.com
Anda harus masuk tanpa diminta kata sandi: P
Saya menginstal Terminal Notifier dari halaman Github: http://cl.ly/MJ5x
2.1. Saya menggunakan perintah installer Permata. Di Terminal, ketik:
gem install terminal-notifier
2.3. Uji apakah notifikasi berfungsi. Di Terminal, ketik:
terminal-notifier -message "Starting sync"
Buat skrip sh untuk menguji notifikasi rsync +. Simpan di mana saja Anda suka, dengan nama yang Anda suka. Dalam contoh ini, saya akan menyebutnya ~ / Scripts / sync.sh Saya menggunakan ekstensi ".sh, tapi saya tidak tahu apakah itu diperlukan.
#!/bin/bash
terminal-notifier -message "Starting sync"
rsync -azP ~/Sites/folder/ user@host.com:site_folder/
terminal-notifier -message "Sync has finished"
3.1. Ingatlah untuk memberikan izin eksekusi pada skrip sh ini. Di Terminal, ketik:
sudo chmod 777 ~/Scripts/sync.sh
3.2. Jalankan skrip dan verifikasi apakah pesan ditampilkan dengan benar dan rsync benar-benar menyinkronkan folder lokal Anda dengan folder jarak jauh.
Akhirnya, saya mengunduh dan menginstal Watchdog dari halaman Github: http://cl.ly/MJfb
4.1. Pertama, saya menginstal dependensi libyaml menggunakan Brew (ada banyak bantuan cara menginstal Brew - seperti "bakat" untuk OS X). Di Terminal, ketik:
brew install libyaml
4.2. Lalu, saya menggunakan "perintah easy_install". Buka folder Watchdog, dan ketik Terminal:
easy_install watchdog
Sekarang, semuanya sudah diinstal! Buka folder yang ingin Anda selaraskan , ubah kode ini sesuai kebutuhan Anda , dan ketikkan Terminal:
watchmedo shell-command
--patterns="*.php;*.txt;*.js;*.css" \
--recursive \
--command='~/Scripts/Sync.sh' \
.
Itu harus PERSIS seperti ini, dengan garis miring dan jeda baris, jadi Anda harus menyalin garis-garis ini ke editor teks, mengubah skrip, menempel di terminal dan tekan kembali.
Saya mencoba tanpa jeda baris, dan itu tidak berhasil!
Di Mac saya, saya selalu mendapatkan kesalahan, tetapi sepertinya tidak memengaruhi apa pun:
/Library/Python/2.7/site-packages/argh-0.22.0-py2.7.egg/argh/completion.py:84: UserWarning: Bash completion not available. Install argcomplete.
Sekarang, buat beberapa perubahan pada file di dalam folder, dan saksikan keajaibannya!
sync
merupakan utilitas sistem (setidaknya pada setiap * nix yang pernah saya lihat; tidak yakin tentang OSX, tetapi tidak melihat alasan mengapa tidak ada di sana). Anda mungkin ingin memberikan nama yang berbeda kepada snip Anda. Juga, ini tidak melampaui SSH, yang diinginkan OP; hanya lewat-e ssh
ke rsync harus memperbaikinya.