วิธีซิงค์ไฟล์ / ข้อมูลระหว่างพีซีสองเครื่องบนเครือข่ายในบ้าน


11

ฉันมีเดสก์ท็อปและแล็ปท็อปที่มีไฟล์เดียวกันเกือบทั้งหมดอยู่ในไดเรกทอรีภายในบ้าน บางครั้งฉันจะทำให้การเปลี่ยนแปลงใน~/Music, ~/Documentsฯลฯ แต่การเปลี่ยนแปลงเหล่านี้แน่นอนไม่ได้ส่งผลกระทบต่อเครื่องอื่น ๆ

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

ฉันไม่ต้องการใช้ Ubuntu One หรือ Dropbox (ไฟล์มีขนาดใหญ่และไม่จำเป็นต้องใช้อินเทอร์เน็ตเมื่อทั้งคู่อยู่ในเครือข่ายภายในบ้าน)


Dropbox ยังมีการซิงค์เครือข่ายดังนั้นอาจไม่ใช่เครื่องมือที่ผิด
เทอร์โบ

คำตอบ:


8

สำหรับไฟล์ชุดเล็ก ๆ ฉันขอแนะนำให้DropboxหรือUbuntu Oneแต่ดูเหมือนว่าคุณต้องการซิงค์คอลเลคชันเพลงระหว่างคอมพิวเตอร์และไฟล์เหล่านี้ไม่เหมาะสำหรับเหตุผลสองประการ:

  • พวกเขาทั้งคู่ประสานกับอินเทอร์เน็ตซึ่งหมายความว่าคอลเลกชันขนาดใหญ่ของไฟล์จะใช้เวลานานในการลงและอัปโหลด
  • พวกเขามีพื้นที่ จำกัด (ด้วยความสามารถในการซื้อเพิ่ม) ซึ่งหมายความว่าสำหรับกลุ่มของไฟล์ขนาดใหญ่คุณอาจท้ายต้องแยกเงินเป็นจำนวนมาก

พร้อมเพรียงซึ่งเป็นสิ่งที่ฉันใช้สำหรับการจำลองแบบท้องถิ่นไม่มีข้อ จำกัด เหล่านี้ (โดยเนื้อแท้) คุณสามารถซิงค์ผ่านเครือข่ายท้องถิ่นของคุณซึ่งหมายความว่ามันรวดเร็ว (คุณสามารถซิงค์ผ่านอินเทอร์เน็ตได้ถ้าต้องการ) และสามารถซิงค์ได้มากเท่าที่คุณต้องการ - ถูก จำกัด ด้วยพื้นที่ดิสก์และแบนด์วิดท์ที่มีอยู่ของคุณ พร้อมเพรียงมีทั้ง GUI และส่วนต่อประสานเทอร์มินัลหมายความว่าคุณสามารถใช้บนเดสก์ท็อปและเซิร์ฟเวอร์ของคุณได้อย่างเท่าเทียมกัน มีคำแนะนำที่ดีเกี่ยวกับวิกิอูบุนตูที่คุณอาจต้องการอ้างถึงหากคุณเลือกที่จะใช้พร้อมเพรียงกัน


1
นี่คือสิ่งที่ฉันกำลังมองหา แต่มีปัญหาอยู่ในนั้นimgur.com/Apqbq.pngคนอื่น ๆ ก็มีปัญหาเดียวกันกับการพร้อมเพรียงกัน คุณรู้วิธีแก้ปัญหาหรือไม่?
Gaurav Butola

1
อืมฉันไม่ได้เห็นตัวเอง แต่ฉันพบข้อผิดพลาด Debian ต่อไปนี้ที่คุณอาจต้องการจับตามอง: bugs.debian.org/cgi-bin/bugreport.cgi?bug=252336 - ดูเหมือนปัญหากับ โปรแกรมถูกขัดจังหวะ ลองและลบไฟล์ที่กล่าวถึงและไปอีกครั้ง ถ้ามันขัดขืนคุณอาจโชคดีกว่ากับ commandline version (นั่นคืออันที่ฉันใช้) ขออภัยฉันไม่สามารถช่วยเหลือเพิ่มเติมได้
เลนเลน

ขอบคุณสำหรับความช่วยเหลือของคุณ. ตรงนี้เป็นสิ่งที่ฉันต้องการมันเป็นเครื่องมือที่ยอดเยี่ยมจริงๆฉันกำลังซิงค์ข้อมูลของฉันผ่าน SSH โดยใช้เวลาเดียวกัน
Gaurav Butola

7

เครื่องมือที่ดีที่สุดสำหรับสิ่งนี้คือเครื่องมือบรรทัดคำสั่ง "Rsync" หากคุณต้องการ GUI ลองใช้ Unison หรือ LuckyBackup ซึ่งเป็นไปตามแนวคิดของ Rsync พร้อมเพรียงและ LuckyBackup มีทั้งในที่เก็บ

ตัวอย่างของ rsync อาจเป็น:

rsync -vxtr / home / scaine / Pictures / / home / OtherUser / Pictures /

... ซึ่งจะซิงโครไนซ์ไดเรกทอรีรูปภาพของฉันกับไดเรกทอรีรูปภาพของ OtherUser ตัวเลือกที่ฉันระบุจะตรวจสอบสำเนาใด ๆ รักษาเวลา / สิทธิ์ระหว่างการคัดลอกและจะสำรวจไดเรกทอรีย่อยที่พบ ทำ "man rsync" เพื่อดูตัวเลือกเพิ่มเติม

สำหรับการเชื่อมต่อพีซีของคุณเข้าด้วยกัน - วางไว้บนสวิตช์ / ฮับหรือใช้สายเคเบิลครอสโอเวอร์จากนั้นแชร์ไดเรกทอรีผ่านแซมบ้า

แก้ไข: บางจุดที่ดีที่จะทำถ้าเป้าหมายคือ "สะท้อน" พีซีสองเครื่อง คำสั่งนี้จะ "เพิ่ม" ไฟล์จากแหล่งไปยังปลายทางเท่านั้น หากคุณต้องการลบคุณจะต้องมีตัวเลือก -delete ที่นั่นด้วย

จากการตรวจสอบพบว่า Rsync ไม่สามารถจัดการกับการมิเรอร์ได้เป็นพิเศษ ดูสิ่งนี้เพื่อรับรู้ว่าคุณอาจพบไฟล์ที่เก่ากว่าเขียนทับไฟล์ที่อายุน้อยกว่าระหว่างการอัพเดทนี้! แม้ว่าคุณจะได้รับตัวเลือก -update ในการทำงานและป้องกันพฤติกรรมนี้มันจะไม่ "อัปเดต" ไฟล์เก่ากว่าด้วยไฟล์ที่อายุน้อยกว่า แต่จะ "ข้าม" ไป ไม่ค่อยเหมาะ

สุดท้ายเพื่อทำการซิงค์แบบสองทางคุณจะต้องเรียกใช้คำสั่งเดียวกัน แต่กลับแหล่งที่มา / ปลายทาง แน่นอนนี่เป็นการ จำกัด การใช้งานในตอนนี้เนื่องจากคำสั่งแรกของคุณ (สมมติว่าคุณใช้ตัวเลือก -delete) จะลบไฟล์ใด ๆ บนปลายทางที่ไม่มีอยู่ในแหล่งที่มา พร้อมเพรียงจัดการซิงค์สองทางค่อนข้างดีจากหน่วยความจำ

หากคุณพยายามซิงค์อย่างต่อเนื่องหลายครั้งการแก้ปัญหา Dropbox เป็นวิธีที่ดีที่สุด หากคุณสามารถดู UbuntuOne หรือ Dropbox อีกครั้งการเชื่อมโยงอาจเป็นวิธีแก้ปัญหา - เพียงเชื่อมโยงโฟลเดอร์เอกสารของคุณแล้วพูดขณะที่ปิดรูปภาพและเพลงหนึ่ง / Dropbox และใช้โซลูชัน rsync / unison นี้เพื่อสิ่งที่ยิ่งใหญ่?


ฉันจะซิงค์ทั้ง / บ้านของทั้งสองมันจะถูกต้องในการทำงานหรือไม่ rsync -vxtr / home / user1 / home / user2 มันจะซิงค์สองทางไหม? มันจะเก็บสำเนาเอกสารที่แก้ไขล่าสุดหรือไม่สนใจไฟล์ถ้ามีอยู่หรือไม่
Gaurav Butola

ดูการแก้ไขคำถามเดิมของฉัน
Scaine

1

ทางเลือก gui สองทางหากคุณไม่ต้องการหรือชอบใช้เทอร์มินัล

grsyncเป็นชื่อที่แสดงถึง GUI rsyncพื้นฐานในการ

พร้อมเพรียงพร้อมเพรียงใช้แบ็กเอนด์สำรองมากกว่าgrsyncแต่นอกเหนือจากที่พวกเขาทำสิ่งเดียวกัน

คุณสามารถติดตั้งได้จากศูนย์ซอฟต์แวร์หรือใช้ apt-get


0

คำตอบง่ายๆ:

rsync -vzu user@ip.address:/remote/dir/*  /local/dir

ตัวเลือก -u เปรียบเทียบวันที่และถ่ายโอนเฉพาะเมื่อวันที่เป้าหมายเก่ากว่าวันที่ที่มา

-v หมายถึง verbose, -z หมายถึงการใช้การบีบอัด

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