RSYNC ทำการสำรองข้อมูลส่วนเพิ่มอย่างไร


14

จะrsyncทราบได้อย่างไรว่าไฟล์ใดถูกเปลี่ยนแปลงและไฟล์ใดบ้าง มันบันทึกข้อมูลที่ใดก็ได้ในไฟล์หรือไม่

เพราะฉันต้องการสำรองข้อมูลเพิ่มเติม แต่ก่อนอื่นมันจะถ่ายโอนไฟล์ทั้งหมด

ดังนั้นคำถามหลักของฉันคือถ้าผมอัปโหลดไฟล์ผ่านทาง FTP เริ่มต้น rsyncแต่ไม่ได้โดย จะrsyncยังคงข้ามไฟล์ที่มีอยู่เหล่านั้นหรือจะอัปโหลดทุกอย่างในการเรียกใช้ครั้งแรก

คำตอบ:


12

Rsync มีจำนวนของธงที่ควบคุมสิ่งที่มันจะดูและสิ่งที่มันจะคัดลอกไปยังปลายทาง ส่วนใหญ่มักใช้แฟล็ก "-a" ซึ่งเป็นแฟล็ก "เก็บถาวร" นี่อาจเป็นสิ่งที่คุณต้องการ เรียกใช้ rsync ด้วยแฟล็ก "-av" และให้ทำการรันครั้งแรกกับข้อมูลที่คุณต้องการสำรองข้อมูล ในครั้งต่อไปที่รันมันจะทำการตรวจสอบบล็อกของไฟล์และคัดลอกเฉพาะส่วนที่มีการแก้ไขในไฟล์ที่มีอยู่คัดลอกไฟล์ใหม่ไปแล้วลบไฟล์ที่ไม่มีอยู่อีกต่อไป ตรวจสอบส่วน "-a" ตัวเลือกที่:

http://linux.die.net/man/1/rsync

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

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

หากคุณต้องการบันทึกสิ่งที่เปลี่ยนแปลงคุณสามารถใช้ตัวเลือก "--log-file" ในทุกสิ่งเช่นนี้เสียงเหมือนสิ่งที่คุณต้องการ:

rsync -av --log-file=/var/log/rsync.log -e "ssh -l backup-user" backup-user@source-machine::module /nas01/backups

9

rsync ไม่ได้ 'เพิ่ม' มันเหมือน 'ดิฟเฟอเรนเชียล' มากกว่า มันไม่ถ่ายโอนการเปลี่ยนแปลง (ซึ่งถือว่ามีความรู้เกี่ยวกับการทำงานก่อนหน้านี้) แต่ก็ถ่ายโอนความแตกต่าง (โดยการเปรียบเทียบแหล่งที่มากับไฟล์เป้าหมาย)

การทำให้กระบวนการง่ายขึ้น:

  • ก่อนอื่นตรวจสอบขนาดไฟล์วันที่สร้าง / แก้ไขแฟล็ก ... หากเหมือนกันทั้งหมดให้ข้ามไฟล์
  • หากไม่มีไฟล์ที่มีชื่อนั้นอยู่ในเป้าหมายให้คัดลอกไฟล์ทั้งหมด
  • หากมีไฟล์อยู่ในเป้าหมายมันจะคำนวณ checksums ของไฟล์ขนาด 2KB แต่ละไฟล์และถ่ายโอนไปยังผู้ส่ง
  • ผู้ส่งเปรียบเทียบเนื้อหาของไฟล์ต้นทางและเปรียบเทียบกับเป้าหมายและถ่ายโอนข้อมูลใด ๆ ที่ยังไม่ได้ส่งไปพร้อมกับการอ้างอิงไปยังข้อมูลที่ตรงกัน โดยที่เป้าหมายสามารถสร้างไฟล์ใหม่ทั้งหมดโดยใช้ชิ้นส่วนของเป้าหมายเก่าและบล็อกใหม่

5

rsync ไม่ได้บันทึกข้อมูลใด ๆ ตรวจสอบการประทับเวลาการแก้ไขไฟล์แล้วเนื้อหา หากคุณอัปโหลดด้วย ftp ก่อนจะได้ผลดี - rsync จะไม่ส่งข้อมูลทั้งหมดอีกครั้ง แต่อาจจะผ่านเนื้อหาทั้งหมดและแก้ไขการประทับเวลา แต่จะไม่มีการถ่ายโอนขนาดใหญ่อีกครั้ง


5

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

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

--backup-dirหากคุณต้องการที่จะทำสำรองที่เพิ่มขึ้นจริงคุณใช้ตัวเลือกเช่น มีตัวอย่างเป็นที่นี่


1
+1 สำหรับความแตกต่างระหว่างการสำรองข้อมูลส่วนเพิ่มและการมิรเรอร์ (ซึ่งเป็นสิ่งที่ rsync ทำตามค่าเริ่มต้น)
sleske

อ่าใช่! การสะท้อนเป็นคำที่ฉันจับต้องได้การโทรที่ดี :-)
Kyle Brandt

0

หากคำถามจริงคือ "ฉันต้องการสำรองข้อมูลส่วนเพิ่มผ่าน rsync" มีตัวเลือกให้เลือกสองสามข้อ ฉันใช้ Dirvish:

http://www.dirvish.org/

การกู้คืนนั้นง่ายเนื่องจากมันให้สแนปชอตของคุณ: มันใช้ฮาร์ดลิงก์เพื่อให้สแน็ปช็อตที่สมบูรณ์ในขณะที่ประหยัดพื้นที่ที่ไฟล์เหมือนกัน ภายในจะใช้ตัวเลือก --link-dest ของ rsync:

--link-dest=DIR         hardlink to files in DIR when unchanged

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

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