ठीक है, मुझे एक ही तरह की समस्या थी और इनका एक साथ उपयोग करना संभव है: rsync, SSH पासवर्डलेस लॉग इन, वॉचडॉग (एक पायथन सिंक यूटिलिटी) और टर्मिनल नोटिफ़ायर (रूबी के साथ बनाया गया एक OS X नोटिफिकेशन यूटिलिटी की जरूरत नहीं है, लेकिन यह जानने में मदद करता है। जब सिंक समाप्त हो गया है)।
मैंने ड्रीमहस्ट विकी से इस ट्यूटोरियल का उपयोग करके पासवर्डलेस लॉगिन की कुंजी बनाई: http://cl.ly/MIw5
1.1। जब आप समाप्त कर लें, यदि सब कुछ ठीक है तो परीक्षण करें ... यदि आप पासवर्ड रहित लॉगिन नहीं कर सकते हैं, तो शायद आपको एफएपी माउंट का प्रयास करना होगा। ड्रीमहोस्ट (जहां मेरी साइट है) एफपी माउंट की अनुमति नहीं देता है, लेकिन पासवर्डलेस लॉगिन की अनुमति देता है। टर्मिनल में, टाइप करें:
ssh username@host.com
आपको पासवर्ड पूछे बिना लॉगिन करना चाहिए: पी
मैंने Github पृष्ठ से टर्मिनल नोटिफ़ायर स्थापित किया: http://cl.ly/MJ5x
2.1। मैंने जेम इंस्टॉलर कमांड का इस्तेमाल किया। टर्मिनल में, टाइप करें:
gem install terminal-notifier
2.3। यदि अधिसूचना काम करती है तो परीक्षण करें। टर्मिनल में, टाइप करें:
terminal-notifier -message "Starting sync"
Rsync + सूचना का परीक्षण करने के लिए एक sh स्क्रिप्ट बनाएँ। आप इसे कहीं भी, जैसे चाहें नाम से सेव कर लें। इस उदाहरण में, मैं इसे ~ / लिपियों / सिंक कहूंगा। मैंने ".sh एक्सटेंशन" का उपयोग किया है, लेकिन मुझे इसकी आवश्यकता नहीं है।
#!/bin/bash
terminal-notifier -message "Starting sync"
rsync -azP ~/Sites/folder/ user@host.com:site_folder/
terminal-notifier -message "Sync has finished"
3.1। इस श स्क्रिप्ट को निष्पादन की अनुमति देना याद रखें। टर्मिनल में, टाइप करें:
sudo chmod 777 ~/Scripts/sync.sh
3.2। स्क्रिप्ट चलाएँ और सत्यापित करें कि क्या संदेश सही तरीके से प्रदर्शित हुए हैं और rsync वास्तव में आपके स्थानीय फ़ोल्डर को दूरस्थ फ़ोल्डर के साथ सिंक करता है।
अंत में, मैंने Github पृष्ठ से Watchdog डाउनलोड और स्थापित किया: http://cl.ly/MJfb
4.1। सबसे पहले, मैंने ब्रू का उपयोग करके लिबायम निर्भरता स्थापित की (ब्रू को स्थापित करने में बहुत मदद की है - ओएस एक्स के लिए "एप्टीट्यूड" की तरह)। टर्मिनल में, टाइप करें:
brew install libyaml
4.2। फिर, मैंने "easy_install कमांड" का उपयोग किया। वॉचडॉग का फ़ोल्डर जाएं, और टर्मिनल में टाइप करें:
easy_install watchdog
अब, सब कुछ स्थापित है! उस फ़ोल्डर पर जाएं जिसे आप सिंक करना चाहते हैं , इस कोड को अपनी आवश्यकताओं में बदलें , और टर्मिनल में टाइप करें:
watchmedo shell-command
--patterns="*.php;*.txt;*.js;*.css" \
--recursive \
--command='~/Scripts/Sync.sh' \
.
यह हो गया है बिल्कुल स्लैश और लाइन टूट के साथ इस तरह से, है, तो आप, एक पाठ संपादक में ये पंक्तियां कॉपी टर्मिनल और प्रेस बदले में स्क्रिप्ट, पेस्ट बदलना होगा।
मैंने बिना लाइन ब्रेक के कोशिश की, और यह काम नहीं करता है!
मेरे मैक में, मुझे हमेशा एक त्रुटि मिलती है, लेकिन यह कुछ भी प्रभावित नहीं करता है:
/Library/Python/2.7/site-packages/argh-0.22.0-py2.7.egg/argh/completion.py:84: UserWarning: Bash completion not available. Install argcomplete.
अब, फ़ोल्डर के अंदर एक फ़ाइल में कुछ बदलाव किए, और जादू देखें!
sync
एक सिस्टम उपयोगिता है (कम से कम हर * निक्स पर मैंने देखा है; ओएसएक्स के बारे में निश्चित नहीं है, लेकिन कोई पुनःविचार देखें कि यह क्यों नहीं होगा)। आप अपने स्निप को एक अलग नाम देना चाह सकते हैं। इसके अलावा, यह एसएसएच से अधिक नहीं है, जिसे ओपी चाहता था; बस-e ssh
rsync के लिए गुजर रहा है कि ठीक करना चाहिए।