โหมดความล้มเหลวสำหรับ rsyncing พร้อมกันระหว่างคอมพิวเตอร์สองเครื่อง


2

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

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

ผลลัพธ์จะแตกต่างกันหรือไม่หากมีเซิร์ฟเวอร์ rsync ในแต่ละเครื่องเทียบกับการใช้ ssh ฉันไม่เห็นคำอธิบายที่ดีเกี่ยวกับผลประโยชน์ในการใช้วิธีหนึ่งกับวิธีอื่น

คำตอบ:


3

ในระยะสั้น - สอง rsync กระบวนการจะ ไม่ รู้อะไรเกี่ยวกับกันและกัน

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

นี่คือสิ่งที่ทำให้ rsync (และเครื่องมือการซิงโครไนซ์ทิศทางเดียวอื่น ๆ ) เป็นอันตรายอย่างยิ่งในบางสภาพแวดล้อม Windows Server DFS และระบบไฟล์คลัสเตอร์ Linux เช่น GlusterFS และ สศค หรือเครื่องมือการจำลองแบบระดับบล็อกเช่น DRBD สามารถใช้งานได้มากขึ้นหากคุณกำลังมองหาการซิงโครไนซ์ทิศทางสองทิศทางที่แท้จริง

คุณอาจพบว่าการตั้งค่าสถานะนี้มีประโยชน์ (จาก rsync หน้าคน) แต่คุณอาจพบพฤติกรรมที่ไม่คาดคิด / คาดเดาไม่ได้โดยเฉพาะอย่างยิ่งถ้าคุณรวมเข้าด้วยกัน --delete:

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