นี่คือคำสั่ง fssync ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
fssync - เครื่องมือซิงโครไนซ์ระบบไฟล์ (1 ทาง บน SSH)
เรื่องย่อ
fssync -d db -r ราก [ตัวเลือก... ] เจ้าภาพ
DESCRIPTION
fssync เป็นเครื่องมือซิงโครไนซ์ไฟล์ทางเดียวที่ติดตาม inodes และดูแล local
ฐานข้อมูลของไฟล์ที่อยู่ฝั่งระยะไกล ทำให้สามารถ:
·จัดการ dirs/files จำนวนมากได้อย่างมีประสิทธิภาพ
·ตรวจจับการเปลี่ยนชื่อ/ย้ายและฮาร์ดลิงก์
มีจุดมุ่งหมายเพื่อลดการรับส่งข้อมูลเครือข่ายและซิงโครไนซ์ทุกรายละเอียดของระบบไฟล์:
· ไอโหนดทุกประเภท: file, dir, block/character/fifo, socket, symlink
· รักษาฮาร์ดลิงก์ไว้
· เวลาแก้ไข ความเป็นเจ้าของ/การอนุญาต/ACL คุณลักษณะเพิ่มเติม
· ไฟล์กระจัดกระจาย
คุณสมบัติอื่น ๆ :
· สามารถกำหนดค่าให้แยกไฟล์ออกจากการซิงโครไนซ์ได้
· fssync สามารถถูกขัดจังหวะและกลับมาทำงานต่อได้ตลอดเวลา ทำให้สามารถทนต่อความล้มเหลวแบบสุ่มได้
(เช่นข้อผิดพลาดของเครือข่าย)
· อัลกอริธึมในการซิงโครไนซ์เนื้อหาไฟล์ได้รับการออกแบบมาเพื่อรองรับไฟล์ขนาดใหญ่ เช่น VM images
อย่างมีประสิทธิภาพโดยการอัปเดตบล็อกที่แก้ไขขนาดคงที่ในตำแหน่ง
การใช้งานหลักของ fssync คือการป้องกันข้อมูลสูญหายในกรณีที่ฮาร์ดแวร์ล้มเหลว โดยที่ RAID1 คือ
เป็นไปไม่ได้ (เช่นในแล็ปท็อป)
On Btrfs [1] ระบบไฟล์ fssync เป็นทางเลือกที่มีประโยชน์สำหรับ btrfs ส่ง (และ รับ)
คำสั่งด้วยความสามารถในการกรอง สามารถใช้ร่วมกับ Btrfs snapshotting
ที่ฝั่งปลายทางสำหรับโซลูชันการสำรองข้อมูลเต็มรูปแบบ
การใช้
ใช้ fssync --ช่วยด้วย เพื่อรับรายการตัวเลือกทั้งหมด
สิ่งสำคัญที่สุดที่ต้องจำไว้คือฐานข้อมูลภายในต้องตรงกับสิ่งที่
บนโฮสต์ปลายทาง:
· ไฟล์ที่คัดลอกบนโฮสต์ปลายทางจะต้องไม่ถูกแก้ไข และไม่มีอะไรควร
สร้างขึ้นด้วยตนเองภายในไดเร็กทอรีปลายทาง หากคุณยังต้องการเข้าถึงข้อมูลบน
โฮสต์ระยะไกล คุณควรดำเนินการผ่านการเชื่อมต่อแบบอ่านอย่างเดียว (ต้องใช้ Linux >=
2.6.26)
· คุณต้องมีฐานข้อมูล 1 แห่งต่อปลายทาง หากคุณวางแผนที่จะมีสำเนาหลายชุด
ไดเรกทอรีต้นทาง
ดูที่ -c ตัวเลือกหากคุณสงสัยว่าฐานข้อมูลของคุณตรงกับไดเร็กทอรีปลายทางหรือไม่
fssync รันครั้งแรก:
· วิธีที่ง่ายที่สุดคือให้ fssync ทำทุกอย่าง ระบุเส้นทางไฟล์ที่ไม่มีอยู่ไปยัง -d
ตัวเลือกและไดเร็กทอรีปลายทางที่ว่างเปล่าหรือไม่มีอยู่ (ดู -R ตัวเลือก). fssync จะ
สร้างฐานข้อมูลโดยอัตโนมัติและคัดลอก dirs/ไฟล์ทั้งหมดไปยังโฮสต์ระยะไกล
· วิธีที่เร็วกว่าคือการทำสำเนาเริ่มต้นด้วยวิธีอื่น เช่น สำเนาดิบของ
พาร์ทิชัน หากคุณแน่ใจว่าต้นทางและปลายทางเหมือนกันทุกประการ
คุณสามารถเริ่มต้นฐานข้อมูลโดยระบุ - เป็นเจ้าภาพ ถ้าเลขไอโหนดเหมือนกัน
ทั้งสองด้านซึ่งเป็นกรณีถ้าข้อมูลถูกคัดลอกที่ระดับบล็อกคุณสามารถแก้ไข
พาร์ติชั่นต้นทางในขณะที่คุณกำลังเตรียมใช้งานฐานข้อมูลบนพาร์ติชั่นปลายทางและกลับมา
ฐานข้อมูลในเครื่อง
ดูตัวอย่าง wrapper รอบ fssync พร้อมตัวกรองได้ที่ ตัวอย่าง/fssync_home
fssync จะไม่ลงจากไดเร็กทอรีบนระบบไฟล์อื่น ไอโหนดที่ถูกปิดบังโดยจุดเมานต์
ถูกข้ามไปด้วย ดังนั้นควรยกเลิกการต่อเชื่อมชั่วคราวหากคุณต้องการให้เป็น
ซิงโครไนซ์ ผลลัพธ์เดียวกันนี้สามารถทำได้โดยการซิงโครไนซ์จากการผูกมัด
ดูเพิ่มเติมที่ NONE ตัวเลข การเปลี่ยน [2] patch หากคุณไม่ต้องการการเข้ารหัสและต้องการ
เร่งความเร็วการเชื่อมต่อ SSH ของคุณ
วิธีการ IT WORKS
fssync รักษาตาราง SQLite เดียวของ dirs/ไฟล์ทั้งหมดที่อยู่ทางฝั่งระยะไกล แต่ละ
แถวตรงกับพาธ โดยมีไอโหนด (ฝั่งโลคัล) ข้อมูลเมตาอื่นๆ (ทางฝั่งรีโมต) และ a
ตรวจสอบแล้ว ธง.
เมื่อรัน fssync จะวนซ้ำผ่าน dirs/ไฟล์ในเครื่องทั้งหมดและสำหรับแต่ละเส้นทาง
ที่ไม่ถูกละเลย (ดู -f ตัวเลือก) จะสอบถามฐานข้อมูลเพื่อตัดสินใจว่าจะทำอย่างไร ถ้าอยู่แล้ว
ตรวจสอบแล้ว, เส้นทางจะถูกข้ามทันที เมื่อพาธถูกซิงโครไนซ์ จะถูกทำเครื่องหมายเป็น
ตรวจสอบแล้ว. ในตอนท้ายแถวทั้งหมดที่ไม่ใช่ ตรวจสอบแล้ว สอดคล้องกับเส้นทางที่ไม่มีอยู่จริง
อีกต่อไป. เมื่อลบออกทางฝั่งรีโมทแล้ว ทั้งหมด ตรวจสอบแล้ว ตั้งค่าสถานะใหม่
ความล้มเหลว ความอดทน
ที่จริงแล้ว fssync ไม่ต้องการให้ฐานข้อมูลตรงกับปลายทางอย่างสมบูรณ์ มัน
ยอมรับความแตกต่างบางประการเพื่อกู้คืนการซิงโครไนซ์ที่ถูกขัดจังหวะที่เกิดจากa
ความล้มเหลวของเครือข่าย ข้อผิดพลาดในการทำงานของไฟล์ หรือสิ่งอื่นใดที่ไม่ใช่ความผิดพลาดของระบบปฏิบัติการ
ของโฮสต์ท้องถิ่น (หรือสิ่งที่คล้ายกันเช่นไฟฟ้าขัดข้อง)
ในกรณีส่วนใหญ่ รีโมตโฮสต์ทำสิ่งนี้ ซึ่งสร้าง (หรือเขียนทับ) โดยอัตโนมัติ
ไอโหนดของประเภทที่คาดไว้หากจำเป็น ข้อยกเว้นเพียงอย่างเดียวคือรีโมทจะ
ไม่เคยลบไดเร็กทอรีที่ไม่ว่างเปล่าด้วยตัวเอง สำหรับกรณีที่ซับซ้อนที่สุด fssync journalizes
การดำเนินการในฐานข้อมูล: ในกรณีที่เกิดความล้มเหลว fssync จะสามารถกู้คืนได้ในครั้งต่อไป
ซิงค์.
เชื่อชาติ เงื่อนไข
สภาพการแข่งขันหมายความว่ากระบวนการอื่น ๆ บนโลคัลโฮสต์กำลังแก้ไข inodes นั้น
fssync กำลังซิงโครไนซ์ fssync จัดการกับสภาพการแข่งขันทุกประเภท อันที่จริง fssync มี
ไม่มีอะไรจะทำสำหรับกรณีส่วนใหญ่
เมื่อสภาวะการแข่งขันเกิดขึ้น fssync ไม่รับประกันว่าข้อมูลระยะไกลจะอยู่ใน a
สถานะที่สอดคล้องกัน การซิงค์แต่ละครั้งจะแก้ไขความไม่สอดคล้องกันที่มีอยู่เสมอ แต่อาจแนะนำ
อื่นๆ ดังนั้น fssync จึงไม่เหมาะสำหรับการสำรองฐานข้อมูลแบบด่วน
ด้วย Btrfs คุณสามารถรับความสอดคล้องโดยสแนปชอตที่ฝั่งต้นทาง
คล้ายกัน โครงการ
แนวคิดในการรักษาฐานข้อมูลท้องถิ่นนั้นมาจาก csync2 [3]. ฉันกำลังจะ
นำมาใช้เมื่อฉันรู้ว่าฉันต้องการเครื่องมือที่ตรวจจับการเปลี่ยนชื่อ / การเคลื่อนไหวของ
ไฟล์ขนาดใหญ่ นั่นเป็นเหตุผลที่ฉันเห็น fssync เป็นการเขียนใหม่บางส่วนของ csync2 โดยมีการติดตามไอโหนดและ
ไม่มีการซิงโครไนซ์แบบสองทิศทาง ฐานข้อมูลท้องถิ่นทำให้ fssync & csync2 . จริงๆ
เร็วกว่าที่รู้จักกันดี rsync [4]
ใช้ fssync ออนไลน์โดยใช้บริการ onworks.net