วิธีการใช้ rsync จาก Windows PC ไปยังเซิร์ฟเวอร์ Linux ระยะไกล


23

ฉันจะใช้rsyncคำสั่งจากเครื่อง Windows 7 ในพื้นที่กับเซิร์ฟเวอร์ Linux ระยะไกลได้อย่างไร

สิ่งที่ซอฟต์แวร์เป็นสิ่งจำเป็นในเครื่อง Windows 7 ใช้rsync?

เซิร์ฟเวอร์ Linux ระยะไกลกำลังใช้ Linux AMI ของ Amazon คำสั่งrsyncเปิดใช้งานบนเครื่องแล้วและฉันสามารถแก้ไขการเข้าถึงเครื่องที่ต้องการ

นี่คือเพื่อวัตถุประสงค์ในการตั้งค่าเว็บเซิร์ฟเวอร์บนเครื่องระยะไกลและการแก้ไขบนเครื่องท้องถิ่นของฉันและทำให้ไฟล์ต่าง ๆ ตรงกัน

ฉันไม่ต้องการเข้าถึงแบบสองทางระหว่างเครื่องฉันเพียง แต่จะแก้ไขไฟล์ในเครื่องท้องถิ่นของฉันและทำให้พวกเขาอัปเดตบนเครื่องระยะไกล

UPDATE:

ฉันติดตั้งcygwinบนเครื่อง Windows 7 ของฉันและติดตั้งแพ็คเกจrsync ใครสามารถให้ขั้นตอนในการตั้งค่าการเชื่อมต่อจากเครื่อง Windows 7 ไปยังเซิร์ฟเวอร์ Linux จากระยะไกลได้หรือไม่?

ถ้าฉันต้องการมีโฟลเดอร์ที่เรียกใช้C:\wwwในเครื่อง Windows ของฉันและทำการอัปเดต\var\wwwบนเครื่องระยะไกลของฉันฉันจะทำอย่างไร มันไม่ใช่การสำรองข้อมูล แต่อย่างใดอัปเดตไฟล์ที่ฉันแก้ไขด้วยเครื่องคอมพิวเตอร์ของฉัน

คำตอบ:


9

ฉันมีMinGW (หรือที่เรียกว่า'Git Bash' ) ใน Windows 7 และไฟล์แบตช์ที่รัน rsync เพื่อสำรองไฟล์ในไดรฟ์ภายนอกบนคอมพิวเตอร์ linux ระยะไกล นี่คือไฟล์แบทช์ ( my_rsync_file.bat)

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
cd ../
REM starting rsync...
bash -c "rsync -avzh -P --stats --timeout=60  --exclude Downloads . 'my_remote_linux_computer@128.95.170.200:/media/my_remote_linux_computer/LaCie/My\ Documents'"

ต่อไปนี้เป็นคำอธิบายแบบบรรทัดต่อบรรทัด:

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)

นี่แค่ปล่อยข้อความเพื่อเตือนฉันว่าเกิดอะไรขึ้น

cd ../

การเปลี่ยนแปลงนี้ทำให้ไดเรกทอรีหนึ่งระดับขึ้นไปจากที่ไฟล์แบตช์ (เป็น 'เอกสารของฉัน') ไฟล์แบตช์อยู่ในไดรฟ์ภายนอกบนคอมพิวเตอร์ Windows ของฉัน ฉันต้องการซิงค์โฟลเดอร์ 'My Documents' ทั้งหมดในไดรฟ์ภายนอกนี้ด้วยโฟลเดอร์ชื่อเดียวกันบนไดรฟ์ภายนอกบนคอมพิวเตอร์ linux ระยะไกลของฉัน

REM starting rsync...

เพียงพิมพ์ข้อความอื่น

bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . my_remote_linux_computer@128.95.155.200:/media/my_remote_linux_computer/LaCie/My\\ Documents"

bash: เริ่ม MinGW ซึ่งมีไลบรารี rsync ในตัว
-c: ไม่แน่ใจว่าสิ่งนี้ทำอะไร
rsync: ไลบรารีเพื่อซิงค์ไฟล์, มาพร้อมกับ MinGW
-avzh: a-Archive, v-Verbose, z-Compress, h-Human-readable, นี่เป็นตัวเลือกทั่วไป (เพิ่มเติม: http://linux.die.net/man/1/rsync )
-P: แสดงความคืบหน้าสำหรับไฟล์ขนาดใหญ่ดังนั้นฉันรู้ว่ามันค้างหรือไม่
--stats: แสดงสรุปของจำนวนไฟล์และไบต์ที่ถ่ายโอนในตอนท้าย
--timeout=60: ฆ่ามันหลังจาก 60 วินาทีถ้าไฟล์นั้นถูก
--excludeละเว้นให้ละเว้นไฟล์ / ไดเรกทอรีจากการซิงค์ในกรณีนี้ฉันจะยกเว้นไดเรกทอรีที่เรียกว่า 'ดาวน์โหลด'
.: ระบุให้ซิงค์เนื้อหาทั้งหมดของ 'เอกสารของฉัน' (คาดว่าสิ่งที่ระบุจะแยกออกจากบรรทัดข้างบน)
my_remote_linux_computer: ชื่อ ของคอมพิวเตอร์ linux ระยะไกลของฉัน (ไม่ใช่ชื่อจริง)
@128.95.155.200: ที่อยู่ IP ของคอมพิวเตอร์ linux ระยะไกลของฉันจากhttps://www.whatismyip.com/ (ไม่ใช่ที่อยู่ IP ที่แท้จริงของฉัน :)
/media/my_remote_linux_computer/LaCie/My\\ Documents: เส้นทางไปยังไดเรกทอรีบนคอมพิวเตอร์ linux ระยะไกลของฉันที่ฉันต้องการรับไฟล์ มันเป็นไดรฟ์ภายนอก

โปรดทราบว่าช่องว่างใน "เอกสารของฉัน" ถูกหลบหนีด้วยแบ็กสแลชสองรายการและชื่อเต็มและไดเรกทอรีของปลายทางระยะไกลจะถูกล้อมรอบด้วยเครื่องหมายอัญประกาศคู่

เมื่อฉันเริ่มดับเบิลคลิกที่ไฟล์ bat ฉันได้รับแจ้งให้ใส่รหัสผ่านสำหรับคอมพิวเตอร์ linux ระยะไกลของฉัน เมื่อเสร็จแล้วฉันจะได้รับเอาต์พุตสรุปและได้รับแจ้งให้กดปุ่มใด ๆ เพื่อปิด


คำอธิบายของ-cพารามิเตอร์จาก bash man: หากมีอ็อพชัน -c อยู่คำสั่งจะอ่านจากสตริง หากมีข้อโต้แย้งหลังจากสตริงพวกเขาจะถูกกำหนดให้กับพารามิเตอร์ตำแหน่งเริ่มต้นด้วย $ 0
Lukasz Stelmach

6

หากคุณต้องการแอปฟรีที่รวม cygwin และ rsync ด้วยอินเทอร์เฟซกราฟิกที่ดีลองดูที่Deltacopy :

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

  • การสำรองข้อมูลส่วนเพิ่ม - คัดลอกส่วนของไฟล์ที่ถูกแก้ไขจริง
  • ตัวกำหนดเวลางาน - ส่วนกำหนดค่าใน DeltaCopy สามารถเรียกใช้ตามกำหนดเวลา
  • การแจ้งเตือนทางอีเมล - ผู้ดูแลระบบสามารถรับการยืนยันทางอีเมลเกี่ยวกับการโอนที่สำเร็จและไม่สำเร็จ
  • คลิกเดียวคืนค่า - ไฟล์สำรองสามารถเรียกคืนได้อย่างง่ายดาย
  • สภาพแวดล้อมที่เป็นมิตรกับ Windows - ไม่จำเป็นต้องแก้ไขไฟล์กำหนดค่าเองหรือเล่นด้วยตัวเลือกบรรทัดคำสั่ง

6

ทางเลือกหนึ่งอาจจะติดตั้ง rsync โดยการติดตั้ง cygwin บน windows อาจมีวิธีการโดยตรงมากกว่านั้น

อีกทางเลือกหนึ่งคือ rsync จากด้าน linux - คุณสามารถตั้งค่าวิธีการให้เครื่องระยะไกลเข้าถึงไฟล์ในเครื่องจากนั้น rsync จากตรงนั้น (ดูที่การติดตั้งการแชร์ smb / cifs)

ฉันสงสัยว่ายังคงมีตัวเลือกที่ดีกว่า แต่อาจช่วยได้บ้าง


อัปเดตในปี 2560

ด้วยระบบย่อย Linux ที่มีอยู่ใน Windows 10 คุณอาจจะสามารถติดตั้งเซิร์ฟเวอร์ ssh & rsync ได้อย่างง่ายดายมาก ๆ ด้วยวิธีนี้และใช้ rsync กับ Windows ผ่านทางนั้น


5

MinGW มี rsync ในตัวที่ดูเหมือนว่าจะทำงานได้ดี มันมีโหมด daemon ด้วย - แม้ว่าฉันจะยังไม่ได้ทดสอบก็ตาม ฉันแนะนำ MinGW มากกว่า cygwin ด้วยเหตุผลหลายประการ: MinGW เป็นการติดตั้งที่เล็กกว่าและเป็น Windows ดั้งเดิม


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