“ rsync” จากระยะไกลไปยังท้องถิ่น


14

สมมติว่าฉันมี 2 เครื่อง:

  • ท้องถิ่น (centos)
  • รีโมตบน IP: 123.123.123.123 ssh พอร์ต 456 (เซิร์ฟเวอร์ Ubuntu)

และฉันต้องการที่จะประสานโฟลเดอร์ระยะไกลของฉันกับโฟลเดอร์ท้องถิ่นของฉัน/home/wolfy/py/home/cavo/python

สามารถทำได้ด้วยrsyncหรือไม่ คุณยกตัวอย่างให้ฉันได้ไหม

คำตอบ:


18

ลองสิ่งนี้:

rsync -ave 'ssh -p 456' /home/cavo/python/ wolfy@123.123.123.123:/home/wolfy/py/ 

โปรดทราบว่าเครื่องหมายทับต่อท้ายบนเส้นทางมีความสำคัญมากซึ่งเป็นสัญญาณว่าคุณกำลังซิงค์ไดเรกทอรีกับไดเรกทอรี -eสวิทช์จะช่วยให้rsyncรู้ว่ามันเป็นไปได้ที่จะใช้sshการขนส่งและในขณะที่เรากำลังระบุขนส่งเรายังบอก SSH พอร์ตใดก็จะต้องใช้ในการพูดคุยกับไซต์ระยะไกล จากนั้นชื่อผู้ใช้และโฮสต์ IP ระยะไกลจะถูกระบุเป็นส่วนหนึ่งของเป้าหมาย


ทำงานได้อย่างสมบูรณ์แบบ :) ขอบคุณสำหรับคำอธิบายโดยละเอียด!
Wolfy

1
Slash ต่อท้ายมีความสำคัญเฉพาะกับแหล่งที่มาไม่ใช่ที่ปลายทาง
enzotib

2
ฉันสับสนไม่ได้คัดลอกจากภายในถึงระยะไกลใช่ไหม ตามstackoverflow.com/a/9090859/277267มันเป็นวิธีอื่น
Daniel F

@DanielF ใช่แล้ว ฉันสงสัยว่านั่นคือสิ่งที่ OP ต้องการโดยคำถามของเขา สังเกตการใช้ "กับ" และถ้อยคำที่ไม่เป็นทางการของเขา หากคุณต้องการซิงค์ dir จากระยะไกลกับท้องถิ่นคุณสามารถย้อนกลับอาร์กิวเมนต์ แหล่งที่มาก่อนเป้าหมาย
Caleb

@Caleb ใช่ แต่ชื่อระบุว่า "จากระยะไกลเป็นท้องถิ่น"
Daniel F

0

สำหรับพวกเราที่ชอบวิธีแก้ปัญหาอย่างละเอียด

sudo rsync --ignore-existing --recursive username@domain:/location/to/files/ files/

จำไว้ว่าคุณมีผู้ชายกับคุณเสมอ

$ man rsync
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.