ฉันจะซิงค์ไดเรกทอรีเว็บไซต์ท้องถิ่นของฉันกับ / home / สาธารณะที่โฮสต์ระยะไกลได้อย่างไร


1

ฉันได้ใช้ Transmit.app เพื่อซิงค์ไดเรกทอรีเว็บไซต์ท้องถิ่นของฉันกับ /home/public ที่เว็บโฮสต์ระยะไกลของฉัน

อย่างไรก็ตามฉันเบื่อที่จะทำสิ่งนี้ในรูปกราฟิกคลิก 10-15 ครั้งทุกครั้งที่ฉันทำการเปลี่ยนแปลงเว็บไซต์ของฉัน

ฉันจะทำสิ่งนี้จากบรรทัดคำสั่งได้อย่างไร ฉันมีสิทธิ์เข้าถึง sshs เพื่อโฮสต์เว็บระยะไกลของฉัน ฉันไม่เคยใช้ rsync พอยน์เตอร์บางตัวอาจมีประโยชน์

คำตอบ:


1
rsync -avhe ssh --delete /home/user/dir/ user@remote.host.com:dir/

ค่อนข้างง่ายและตรงไปตรงมา

หวังว่าคุณจะใช้คอมไพล์ในกระบวนการพัฒนาของคุณจากนั้นคุณสามารถใช้มันแทน

ข้อมูลเพิ่มเติมเกี่ยวกับ rsync ที่นี่:

http://www.linux.com/news/enterprise/storage/8200-back-up-like-an-expert-with-rsync

ในการปรับใช้กับคอมไพล์:

http://philsturgeon.co.uk/news/2010/02/Deploying-websites-with-Git


1

บางสิ่งเช่นนี้

rsync -avh --delete /local/directory username@remotehost:/home/public

สิ่งนี้จะสร้าง directory ภายใน /home/public. หากคุณต้องการที่จะมีเนื้อหาของ directory โดยตรง /home/public ใช้สิ่งที่ชอบ (โปรดทราบว่าต่อท้ายทับ):

rsync -avh --delete /local/directory/ username@remotehost:/home/public

เช็คเอาท์ man rsync สำหรับตัวเลือกเพิ่มเติม สิ่งที่ใช้ด้านบน:

  • --delete จะลบไฟล์ที่ไม่มีอยู่ในโฮสต์ระยะไกลออกไปดังนั้นโปรดระวังสิ่งที่คุณถ่ายโอน
  • a สำหรับ "การเก็บถาวร" และควรมีประโยชน์ในกรณีส่วนใหญ่
  • h จะเปิดใช้งานขนาดไฟล์ที่มนุษย์สามารถอ่านได้

ตัวเลือกเพิ่มเติมบางอย่างที่คุณอาจต้องการใช้:

  • --progress เพื่อดูความคืบหน้าในปัจจุบันเช่นกัน
  • --dry-run เพื่อดูว่าอะไรจะถูกส่งในทางทฤษฎี (แต่ไม่ได้ส่งอะไรเลย)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.