วิธีการซิงโครไนซ์โฟลเดอร์ภายในบ้านระหว่างคอมพิวเตอร์หลายเครื่อง


117

ฉันมีคอมพิวเตอร์สามเครื่องที่บ้านและต้องการให้/home/แผนผังโฟลเดอร์ตรงกันระหว่างทั้งสามเครื่อง
ไฟล์ / โฟลเดอร์ใด ๆ (ยกเว้นที่ซ่อนอยู่) ที่ถูกแก้ไข / เพิ่ม / ลบในคอมพิวเตอร์หนึ่งในสามเครื่องนั้นได้รับการอัพเดตในอีกสองเครื่อง

คือrsyncพอที่จะทำเช่นนี้? แล้วยังไง?


9
ปัญหาเกี่ยวกับเครื่องมือ 'ซิงค์' ส่วนใหญ่ (รวมถึง rsync ถ้าฉันจำได้อย่างถูกต้อง) คือพวกเขาไม่มีความเห็นเกี่ยวกับการกระทำของผู้ใช้ ดังนั้นหากคุณลบไฟล์ในคอมพิวเตอร์ X เครื่องมือไม่ทราบว่า (a) คุณลบไฟล์ในคอมพิวเตอร์ X หรือ (b) ที่คุณเพิ่มไฟล์นั้นลงในคอมพิวเตอร์ Y เครื่องมือส่วนใหญ่จะถือว่า (b) ดังนั้นเมื่อทำการซิงค์พวกเขาจะเพิ่มไฟล์อีกครั้งในคอมพิวเตอร์ X (แทนที่จะลบมันในคอมพิวเตอร์ Y)
Rabarberski

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

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

คำตอบ:


90

ต่อไปนี้เป็นรายการสิ่งที่สามารถแก้ไขปัญหานี้ได้ยอดคงเหลือของการแลกเปลี่ยนที่คุณต้องทำแตกต่างกันดังนั้นคุณจะต้องตัดสินใจเลือกของคุณเองและลองทำเอง:

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

  • OwnCloud - ที่เก็บข้อมูลบนคลาวด์ทำงานบนเซิร์ฟเวอร์ของคุณเอง คุณจะต้องมีเครื่องทิ้งไว้ ต้องมีการตั้งค่าในจำนวนที่สมเหตุสมผล รันเว็บเซิร์ฟเวอร์ Apache 2 แบบเต็มและฐานข้อมูล SqlLite หรือ MySQL บนเซิร์ฟเวอร์ ทำงานคล้ายกับ Dropbox ด้วยไคลเอนต์เดสก์ท็อป แต่เซิร์ฟเวอร์อยู่ภายใต้การควบคุมของคุณ แก้ไข: OwnCloud เพิ่งผ่านการเปลี่ยนแปลงบางอย่างในวิธีการทำงานของโครงการและตอนนี้มีโอเพ่นซอร์สใหม่อย่างสมบูรณ์ (เช่นไม่มี 'enterprise' edition) ภายใต้หน้ากากของNextCloud (ดูบทสัมภาษณ์ youtubeนี้กับนักพัฒนา OwnCloud ดั้งเดิม สำหรับรายละเอียดเพิ่มเติม)

  • SparkleShare - ใช้คอมไพล์เพื่อซิงค์ไฟล์ ตามหน้าแรก: ดีสำหรับไฟล์ขนาดเล็กจำนวนมากไม่ดีสำหรับไฟล์ขนาดใหญ่จำนวนมากเช่นคอลเล็กชั่นเพลงหรือภาพถ่าย

  • Seafile - ให้ส่วนประกอบเซิร์ฟเวอร์ที่คุณสามารถติดตั้งบนเครื่องท้องถิ่น Seafile ใช้แบบจำลองข้อมูลที่คล้ายคลึงกับ gitเพื่อติดตามการเปลี่ยนแปลง จัดเตรียมไคลเอ็นต์การซิงค์สำหรับเดสก์ท็อปแท็บเล็ตและสมาร์ทโฟน โพสต์บล็อกที่อธิบายการตั้งค่าสามารถพบได้ที่http://openswitch.org/blog/2013/07/18/installing-and-configuring-seafile-on-ubuntu-12-dot-04/

  • Osync - "... เครื่องมือซิงโครไนซ์ไฟล์แบบสองทิศทางที่เขียนใน bash และอ้างอิงจาก rsync มันทำงานบนโลคอลและ / หรือรีโมตไดเร็กทอรีผ่าน ssh tunnels ส่วนใหญ่จะมีการกำหนดเป้าหมายเป็น cron task" (ข้อความจากเว็บไซต์)

  • PowerFolder - โปรเจ็กต์ GPL v2 ที่ใช้ Java เว็บไซต์หลักส่งข้อเสนอทางการค้าดังนั้นจึงไม่ชัดเจนว่าจะใช้ไฟล์. jar ที่ให้มาได้อย่างไร

  • Rsync - รวดเร็วและมีประสิทธิภาพและมีมานานหลายทศวรรษแล้ว แต่มันไม่ได้เก็บประวัติดังนั้นคุณต้องเลือกทิศทางในการตัดสินใจว่าไฟล์นั้นเป็นไฟล์ใหม่หรือถูกลบ เครื่องมือแบบกราฟิกที่มีอยู่เช่นgwRsync

  • Lsyncd - ตรวจสอบโฟลเดอร์ / ไฟล์เพื่อเรียกการจำลองแบบ rsync

  • dvcs-autosync - เขียนด้วย python ใช้ git เพื่อจัดเก็บและแชร์การเปลี่ยนแปลงระหว่างเครื่องและ XMPP เพื่อสื่อสารการเปลี่ยนแปลง

  • git-annex - เครื่องมือบรรทัดคำสั่งสำหรับการแบ่งไฟล์โดยใช้ git มีคำแนะนำแบบตัวอย่างที่นี่: http://git-annex.branchable.com/walkthrough/

  • Tonido - ฟรีแวร์ จัดเตรียมแอปเดสก์ท็อปที่จะแชร์ไฟล์ไปยังอุปกรณ์อื่น ยังมีข้อเสนอคลาวด์เชิงพาณิชย์และคอมพิวเตอร์ปลั๊ก TonidoPlug

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

  • SyncThing - พัฒนาเป็นโอเพนซอร์ซทางเลือกให้กับ BitTorrent Sync ขณะนี้ยังขาดคุณสมบัติขั้นสูงบางส่วนของ BitTorrent Sync เช่นเพียร์ที่ไม่น่าเชื่อถือ มันอยู่ภายใต้การพัฒนาที่ใช้งานอยู่

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

  • Git / subversion - ใช้ระบบควบคุมแหล่งสัญญาณโดยตรง คู่มือที่สมบูรณ์และมีความซับซ้อนเล็กน้อย แต่เป็นวิธีที่ได้รับความนิยมจากผู้ใช้บางคนที่คุ้นเคยกับระบบเหล่านี้ไม่ให้ใช้เป็นเครื่องมือในการเขียนโปรแกรม

  • CloudFS - ทำข้อมูลให้ตรงกันทั้งระบบไฟล์เทคโนโลยีคลัสเตอร์ตาม

  • NFS mount - โดยทั่วไปบ้านของคุณอาศัยอยู่ในเครื่องเดียวและคุณเข้าถึงผ่านเครือข่ายไม่เหมาะสำหรับแล็ปท็อปที่คุณใช้กับคุณ ข้อมูลเพิ่มเติม: http://www.linuxjournal.com/article/4880


ปัจจัยที่ต้องพิจารณาในการตัดสินใจของคุณ:

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

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

  • การเข้าถึงระยะไกล - คุณต้องการซิงโครไนซ์ห่างจาก LAN (หรือที่บ้าน) หรือไม่ลองนึกถึงความปลอดภัยของสิ่งนี้

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

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

  • ความจุของดิสก์

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


ผมขอแนะนำให้ไม่ได้ซิงค์โฟลเดอร์บ้านทั้ง แต่แทนที่จะหยิบโฟลเดอร์เฉพาะเพื่อซิงค์เช่นDocuments/, Pictures/ฯลฯ นี้จะหลีกเลี่ยงความเจ็บปวดจากการถูกบังคับให้จัดการกับปัญหา / ประสิทธิภาพความเร็วพื้นที่ดิสก์ / ตรงกันโดยอัตโนมัติทุกอย่าง นอกจากนี้ยังหลีกเลี่ยงการรักษารายการยกเว้น

ในขณะที่ฉันพยายามค้นหาสิ่งที่เหมาะกับตัวฉันต่อไปฉันจะพยายามรักษาคำตอบนี้ให้ทันสมัยด้วยข้อมูลที่เป็นประโยชน์ ฉันรวบรวมข้อมูลจากคำตอบอื่น ๆ ทั้งหมดเป็นคำตอบเดียว

อ้างอิง:

  • LinuxFormat - กุมภาพันธ์ 2014 LXF180 p31 "Hosted Roundup Storage"

แฮ็ค / ทั้งหมด /


ฉันมีการเข้าถึงรูทเซิร์ฟเวอร์ที่ไม่มีรูท (ซึ่งจำเป็นสำหรับการติดตั้งพร้อมเพรียงเป็นต้น) มีสคริปต์ที่ฉันสามารถมีในเครื่องไคลเอนต์ของฉันที่ไม่จำเป็นต้องติดตั้งบนเซิร์ฟเวอร์ของฉันหรือไม่?
Ben Kushigian

ฉันเห็นซอฟต์แวร์ชื่อ freefilesync ( sourceforge.net/projects/freefilesync ) พูดถึงสองสามครั้งที่นี่และที่นั่น อาจจะมีมูลค่าการกล่าวขวัญในรายการของคุณ?
YoungFrog

28

พร้อมเพรียงอาจเป็นผู้สมัครที่ดี:

Unison เป็นเครื่องมือซิงโครไนซ์ไฟล์สำหรับ Unix และ Windows อนุญาตให้เก็บแบบจำลองสองชุดของไฟล์และไดเรกทอรีที่จะจัดเก็บในโฮสต์ที่แตกต่างกัน (หรือดิสก์ที่แตกต่างกันในโฮสต์เดียวกัน), แก้ไขแยกต่างหากจากนั้นนำมาทันสมัยโดยเผยแพร่การเปลี่ยนแปลงในแต่ละแบบจำลองไปยังอีก

ซิงค์ 2 ทางแล้ว ดูการปรับปรุงซอลเบลโลว์

ฉันได้เรียนรู้ว่ามีบางสิ่งที่ rsync ไม่สามารถทำได้และมันอาจเป็นวิธีแก้ปัญหาที่ดีกว่าหรือดีกว่า แต่คุณจะต้องรอให้ผู้เชี่ยวชาญ rsync เปิดใช้งานโซลูชันนั้น

อัปเดต:ใช่พร้อมเพรียงสามารถซิงค์มากกว่า 2 เครื่อง จากคู่มือผู้ใช้ :

การใช้ Unison เพื่อซิงโครไนซ์มากกว่าสองเครื่อง

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

หากคุณจำเป็นต้องทำสิ่งนี้วิธีที่น่าเชื่อถือที่สุดในการตั้งค่าสิ่งต่าง ๆ คือการจัดระเบียบเครื่องจักรให้เป็น "ดาวโทโพโลยี" โดยมีเครื่องหนึ่งเครื่องที่เรียกว่า "ฮับ" และส่วนที่เหลือเป็น "ซี่" เฉพาะกับฮับ ข้อได้เปรียบที่ยิ่งใหญ่ของรูปร่างของดาวฤกษ์คือมันกำจัดความเป็นไปได้ที่ทำให้เกิดความสับสน "ความขัดแย้งปลอม" ที่เกิดจากความจริงที่ว่า Unison เก็บถาวรแยกจาก Unison สำหรับโฮสต์ทุกคู่ที่มันทำการซิงโครไนซ์


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

1
ฉันขอแนะนำให้แก้ไขตัวอย่าง a / b / c เพื่อทำตามคำแนะนำในคู่มือไม่ให้สร้างลูป
Tim Abell

เกี่ยวกับการอ้างอิงของคุณไปยัง rsync ไม่มันไม่สามารถทำการซิงค์แบบสองทางได้อย่างน่าเชื่อถือ ดูคำตอบต่อไปนี้เพื่อดูว่าทำไมพร้อมเพรียงสามารถจัดการเคสที่ rsync ไม่สามารถทำได้: stackoverflow.com/questions/4504357/…
ndemou

19

จะวางไฟล์ของคุณในระบบควบคุมเวอร์ชันเช่น SubVersion หรือ git ได้อย่างไร?

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

โชคดี


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


Yikes แนวคิดของการใช้การควบคุมเวอร์ชันสำหรับการซิงค์ไฟล์ทำให้การสกินของฉันคลาน
JohnD

ใช่ความคิดนั้นแปลก แต่ก็มีประโยชน์จริงๆ คิดเกี่ยวกับ dir เช่น ~ / bin / สำหรับสคริปต์ผู้ช่วยส่วนตัว, dir ประเภทนั้นดีมากในระบบควบคุมเวอร์ชัน ในขณะที่ dir เช่น. kde อาจทำงานได้ไม่ดีในระบบควบคุมเวอร์ชันและจะอยู่ในรายชื่อที่ไม่สนใจสำหรับไฟล์ที่ไม่ได้รับการจัดการ
Johan

นี่เป็นวิธีที่ดีในการซิงค์ไฟล์ของคุณคุณจะต้องคุ้นเคยกับแนวคิดการใช้ "git add" และ "git rm" เพื่อเพิ่ม / ลบไฟล์ แต่ใช้งานได้ดีมาก
jhcaiced

ฉันชอบความคิดนี้เพราะฉันเป็นผู้ควบคุมว่าส่วนใดของไฟล์ภายในถังขยะที่ฉันมีในบ้านของฉันจะถูกแชร์ คำถามเดียวคือวิธีการจัดการความมุ่งมั่น เช่นบางไฟล์ควรเข้าสู่การคอมมิทเริ่มต้นจากนั้นสะท้อนการเปลี่ยนแปลงเพื่อแสดงว่าพวกเขาอยู่บนพื้นฐานของระบบ / etc / skel
ony

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

6

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

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

มีวิธีแก้ไขที่เป็นไปได้อื่น ๆ อีกมากมาย แต่ไม่มีใครแก้ปัญหานี้ได้อย่างน่าอัศจรรย์เท่าที่ฉันรู้ ขั้นตอนแรกอาจจะคิดเกี่ยวกับวิธีที่คุณใช้เครื่องจักรและกำหนดนโยบายการซิงค์ให้เหมาะสมกับพฤติกรรมของผู้ใช้ของคุณ



4

สิ่งนี้จะไม่เป็นการแก้ปัญหาทั้งหมด แต่มันจะทำให้คุณเริ่มต้น:

ตั้งค่างาน cron ทุกครั้งเพื่อซิงค์ไฟล์ ฉันใช้คำสั่งดังต่อไปนี้:

rsync -alhz --stats --progress --exclude-from '/etc/rsync_backup_excludes.conf' / -e ssh user@10.10.0.1:/path/to/home/

สิ่งนี้จะใช้ rsync เพื่อคัดลอกการเปลี่ยนแปลงที่จำเป็นเท่านั้นไม่คัดลอกทุกสิ่งทุกครั้งที่รันคำสั่ง

- สถานะและ - ความคืบหน้าเป็นตัวเลือกและอาจถูกแยกออกจากสคริปต์ของคุณ

เนื้อหาของไฟล์ rsync_backup_excludes.conf ของฉันคือ:

dev/*
proc/*
lost+found/*
mnt/*
sys/*

Anacron จะซิงค์เมื่อเปิดเครื่องหลีกเลี่ยงสล็อตที่หายไปเนื่องจากการหยุดทำงาน
ทิม Abell

สิ่งนี้คัดลอกโลคัลรูททั้งหมดของคุณลงในโฟลเดอร์โฮมรีโมต นั่นไม่ใช่สิ่งที่เป็น OP ถามหาหรือฉันสามารถจินตนาการทำไมทุกคนต้องการที่ ...
Cerin

4

ลองดูlsyncd

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

Rsync + ssh เป็นการกำหนดค่าการดำเนินการขั้นสูงที่ใช้ SSH เพื่อทำหน้าที่ย้ายไฟล์และไดเรกทอรีโดยตรงบนเป้าหมายแทนที่จะส่งสัญญาณปลายทางย้ายใหม่ผ่านสาย

สามารถทำการปรับแต่งแบบละเอียดได้ผ่านไฟล์ปรับแต่ง การกำหนดค่าการกระทำที่กำหนดเองสามารถเขียนได้ตั้งแต่เริ่มต้นในชั้นซ้อนตั้งแต่เชลล์สคริปต์ไปจนถึงโค้ดที่เขียนใน Lua language.layers ตั้งแต่เชลล์สคริปต์ไปจนถึงโค้ดที่เขียนในภาษา Lua


2

ดูที่ dropbox http://www.getdropbox.com/ ข้ามแพลตฟอร์ม Win / Linux / Mac


3
ขอบคุณ แต่ไม่ใช่ พยายามมาแล้ว ไม่ใช่สิ่งที่ฉันกำลังมองหา
lamcro

Dropbox นั้นยอดเยี่ยมและฉันใช้ 2GB ฟรีสำหรับจัดเก็บลิงก์รูปภาพและข้อมูลสำคัญอื่น ๆ ที่ไม่ใช่ภารกิจระหว่างบ้านที่ทำงานและแล็ปท็อปของฉัน ไม่ใช่สิ่งที่คุณต้องการในสถานการณ์นี้ แต่ในความคิดของฉัน Dropbox มีที่แน่นอน
Matt Cofer

2

เมานต์/homeจากคอมพิวเตอร์เครื่องหนึ่งไปอีกเครื่องหนึ่ง Automount ใช้งานได้ดีสำหรับเรื่องนี้


1

Ubuntu Oneอาจเป็นสิ่งที่คุณกำลังมองหา น่าเสียดายที่มันยังอยู่ในช่วงเบต้าและฉันไม่มีประสบการณ์กับมันดังนั้นฉันจึงไม่แน่ใจว่ามันจะเหมาะกับคุณหรือไม่


ฉันจะบอกว่ามันยังอยู่ในช่วงการพัฒนาที่หนักหน่วงในขณะนี้ - มีการอัปเดตทุกสองสามวันเนื่องจากทีมงานของ Ubuntu เริ่มต้นการเปลี่ยนแปลง ใช้งานได้ แต่ฉันไม่แนะนำให้ใช้กับ Dropbox
nagul

1

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

นอกจากนี้สคริปต์ทุบตีบางตัวควรทำงานแตกต่างกันในเครื่องเหล่านี้ดังนั้นฉันจึงแก้ไข /etc/bash.bashrc ของฉัน:

ส่งออก OOHOST = ปริญญาโท

ตอนนี้สคริปต์รู้ว่าโฮสต์ที่พวกเขากำลังให้บริการ;)


1

ลองDVCS-Autosync

สิ่งนี้มีพื้นฐานอยู่บน git ใช้ XMPP เพื่อแจ้งลูกค้าที่มีความกังวลเรื่องการเปลี่ยนแปลงไฟล์และตอบสนองต่อเหตุการณ์การเปลี่ยนแปลงไฟล์ผ่านการเปลี่ยนแปลง inode ดังนั้นมันจะได้รับแจ้งทันทีหลังการเปลี่ยนแปลงไฟล์ในกรณีที่มีข้อขัดแย้งขึ้นอยู่กับวิธีการพิสูจน์แล้วของ git

ฉันใช้มันมาระยะหนึ่งแล้วเพื่อแทนที่ Dropbox ผ่านทางกุญแจสาธารณะของ SSH และมันใช้งานได้จริง


0

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


0

วิธีแก้ปัญหาที่ฉันจะพิจารณา:

  • Dropbox
    ข้อเสียเปรียบหลัก: ไม่ฟรีสำหรับปริมาณข้อมูลที่สมเหตุสมผล มิฉะนั้นมันจะทำงานได้อย่างไม่มีที่ติ IMHO

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


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

0

ฉันใช้SyncTwoFoldersสำหรับ Mac และSyncbackสำหรับ PC - เครื่องแรกสำหรับ mac สามเครื่องที่บ้าน (แล็ปท็อปรวม) และเครื่องที่สองสำหรับพีซีที่ทำงาน ทั้งสองโปรแกรมมีตัวเลือกการแบ็คอัพและการซิงค์ที่หลากหลายทำให้เป็นเรื่องง่ายเมื่อตั้งค่าล่วงหน้าแล้ว ง่าย peasy! ฉันแน่ใจว่ามีซอฟต์แวร์ที่คล้ายกันเวอร์ชันอื่นสำหรับ Linux และ Ubuntu


0

คุณสามารถใช้สคริปต์ซิงค์เช่น osync ซึ่งสามารถเผยแพร่ไฟล์ที่ถูกลบและอัปเดตเฉพาะไฟล์ที่ถูกแก้ไข http://www.netpower.fr/osync osync มีพื้นฐานจาก rsync แต่สามารถจัดการสถานการณ์การซิงค์จำนวนมากระหว่างโฟลเดอร์โลคัลหรือรีโมตผ่าน ssh

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