ฉันมีปัญหาแบบเดียวกันและเป็นไปได้ที่จะใช้สิ่งเหล่านี้ร่วมกัน: rsync, SSH Passwordless Login, Watchdog (ยูทิลิตี้ Python sync) และ Terminal Notifier (ยูทิลิตี้แจ้งเตือน OS X ทำด้วย Ruby ไม่จำเป็น แต่ช่วยให้รู้ เมื่อการซิงค์เสร็จสิ้น)
ฉันสร้างกุญแจเพื่อล็อกอินแบบไม่ใช้รหัสผ่านโดยใช้บทช่วยสอนนี้จาก Dreamhost wiki: http://cl.ly/MIw5
1.1 เมื่อเสร็จแล้วให้ทดสอบว่าทุกอย่างเรียบร้อยหรือไม่ถ้าคุณไม่สามารถลงชื่อเข้าใช้ด้วยรหัสผ่านไม่ได้คุณอาจต้องลองติดตั้ง afp Dreamhost (ที่ที่เว็บไซต์ของฉันอยู่) ไม่อนุญาตให้ติดตั้ง afp แต่อนุญาตการล็อกอินแบบไม่ใช้รหัสผ่าน ในเทอร์มินัลพิมพ์:
ssh username@host.com
คุณควรเข้าสู่ระบบโดยไม่ต้องใช้รหัสผ่าน: P
ฉันติดตั้ง Terminal Notifier จากหน้า Github: http://cl.ly/MJ5x
2.1 ฉันใช้คำสั่ง Gem installer ในเทอร์มินัลพิมพ์:
gem install terminal-notifier
2.3 ทดสอบว่าการแจ้งเตือนใช้งานได้หรือไม่ใน Terminal ให้พิมพ์:
terminal-notifier -message "Starting sync"
สร้างสคริปต์ sh เพื่อทดสอบการแจ้งเตือน rsync + บันทึกทุกที่ที่คุณต้องการด้วยชื่อที่คุณชอบ ในตัวอย่างนี้ฉันจะเรียกมันว่า~ / Scripts / sync.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 อย่าลืมให้สิทธิ์การดำเนินการกับสคริปต์นี้ sh ในเทอร์มินัลพิมพ์:
sudo chmod 777 ~/Scripts/sync.sh
3.2 เรียกใช้สคริปต์และตรวจสอบว่าข้อความแสดงขึ้นอย่างถูกต้องและ rsync ซิงค์โฟลเดอร์ในระบบของคุณกับโฟลเดอร์ระยะไกลจริงหรือไม่
ในที่สุดฉันดาวน์โหลดและติดตั้ง Watchdog จากหน้า Github: http://cl.ly/MJfb
4.1 ก่อนอื่นฉันติดตั้งการพึ่งพา libyaml โดยใช้ Brew (มีความช่วยเหลือมากมายในการติดตั้ง Brew - เหมือน "ความถนัด" สำหรับ OS X) ในเทอร์มินัลพิมพ์:
brew install libyaml
4.2 จากนั้นฉันใช้คำสั่ง "easy_install" ไปที่โฟลเดอร์ Watchdog และพิมพ์ใน Terminal:
easy_install watchdog
ตอนนี้ทุกอย่างถูกติดตั้งแล้ว! ไปยังโฟลเดอร์ที่คุณต้องการที่จะได้รับการซิงค์ , เปลี่ยนรหัสนี้เพื่อความต้องการของคุณและพิมพ์ในเทอร์มิ:
watchmedo shell-command
--patterns="*.php;*.txt;*.js;*.css" \
--recursive \
--command='~/Scripts/Sync.sh' \
.
มันจะต้องมีตรงวิธีนี้กับทับและแบ่งสายดังนั้นคุณจะต้องคัดลอกบรรทัดเหล่านี้ไปแก้ไขข้อความเปลี่ยนสคริปต์ที่วางใน terminal และกดผลตอบแทน
ฉันพยายามโดยไม่มีตัวแบ่งบรรทัดและมันไม่ทำงาน!
ใน Mac ของฉันฉันมักจะได้รับข้อผิดพลาด แต่ดูเหมือนจะไม่มีผลอะไร:
/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
เป็นระบบสาธารณูปโภค (อย่างน้อยในทุกระวัง * ผมเคยเห็น; ไม่แน่ใจเกี่ยวกับ OSX แต่ไม่เห็น reaosn ทำไมมันจะไม่ได้อยู่ที่นั่น) คุณอาจต้องการให้ชื่ออื่นถูกตัด นอกจากนี้สิ่งนี้ไม่ได้ผ่าน SSH ซึ่ง OP ต้องการ เพียงส่งผ่าน-e ssh
ไปยัง rsync ควรแก้ไขปัญหานั้น