ใช้ Rsync เพื่อสำรองข้อมูลไปยังไดรฟ์ภายนอก


17

ฉันซื้อฮาร์ดไดรฟ์ภายนอกเพื่อสำรองข้อมูลคอมพิวเตอร์ในบ้านของฉัน (ในที่สุด !!) ฉันหวังว่าจะใช้ rsync ฉันเห็นตัวอย่างที่ทำ (หรือดูเหมือนว่าจะทำ) อย่างที่ฉันต้องการ บางสิ่งเช่นนี้

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

อย่างไรก็ตามเมื่อดูเอกสารและตัวอย่าง rsync สิ่งต่าง ๆ เริ่มดูซับซ้อนมากขึ้นกว่านั้น ระบบเครือข่ายและ daemons และศัพท์แสงโอ้ฉัน!

ฉันสมมติว่าไม่มีสิ่งใดที่จำเป็นตราบใดที่ฉันเพิ่งส่งสัญญาณจากคอมพิวเตอร์ไปยังไดรฟ์ภายนอกที่เชื่อมต่อด้วยไฟร์ไวร์ ฉันผิดที่คิดว่า? สิ่งต่าง ๆ จะซับซ้อนกว่าคำสั่งที่ไม่มีพิษภัยหรือไม่?


คำตอบ:


10

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


2
s / อย่างไรก็ตาม / โชคดี / เมื่อไฟล์อยู่ในเครื่องการอ่านทั้งสองและการทำเวทมนตร์ต่าง ๆ ทั้งหมดเพื่อเขียนใหม่ด้วยส่วนต่าง ๆ ของทั้งสอง (อ่านอีกครั้ง) เป็นการทำงานมากกว่าแค่แหล่งอ่านเขียนปลายทาง
Javier

ไม่ทราบว่าฉันควรตอบคำถามนั้นหรือไม่ ฉันจะเพิ่มทันที
kbyrd

31

ฉันใช้ rsync กับธงต่อไปนี้เป็นที่จดจำอย่างคล่องแคล่วว่า 'glop' และ 'trunc' และ 'v'

rsync -gloptrunc $srcdir $dstdir

คำแนะนำสั้น ๆ :

  • g - รักษาข้อมูลความเป็นเจ้าของกลุ่ม
  • l - คัดลอก symlink เป็น symlinks
  • o - สงวนข้อมูลเจ้าของ
  • p - สงวนสิทธิ์
  • t - รักษาเวลาประทับ
  • r - เรียกเก็บเงินผ่านไดเรกทอรี
  • u - อัปเดตข้ามไฟล์ใหม่ใด ๆ
  • [n] - ไม่อย่าทำแบบนี้แทนการทำแบบแห้งแทน
  • c - checksum ลอง checksums บนบล็อกไฟล์เมื่อเป็นไปได้ (*)
    หมายเหตุ: บนระบบไฟล์โลคัลสิ่งนี้จะถูกแทนที่และไฟล์ทั้งหมดจะถูกคัดลอกแทน
  • v - verbose

ฉันมักจะเรียกใช้ข้างต้นเพื่อให้แน่ใจว่ามันใช้งานได้แล้วลบธง 'n' ที่เมื่อฉันพอใจกับผลลัพธ์

คุณสมบัติที่สำคัญของชุดค่าผสมด้านบน:

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

ฉันใช้สิ่งนี้เพื่อซิงค์เครื่องสองเครื่องหรือซิงค์ย่อย ๆ (เช่นสำรองข้อมูลไปยังไดรฟ์ USB)

เนื่องจากหนึ่งในโพสต์อื่น ๆ ที่ระบุไว้ก่อนหน้า 'การตรวจสอบ' อาจถูกบังคับปิดถ้าคุณจัดการกับไดรฟ์ในเครื่อง

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


3
แฟล็ก -a เป็น rsync ไม่ได้ทำทั้งหมดข้างต้นหรือไม่
Rory

2
ฉันไม่ใช่แฟนตัวยงของการใช้ธง 'เมตา' เมื่อฉันไม่รู้ว่าพวกเขาทำอะไร manapage สำหรับ rsync ระบุว่า '-a' จริง ๆ แล้วคือ -rlptgoD ในกล่องของฉันซึ่งข้าม 'u' และ 'v' แต่มี 'D' ดูเหมือนว่าสำหรับฉันแล้วการเพิ่ม 'u' เป็นเพียงความแตกต่างที่สำคัญเท่านั้น
ericslaw

ฉันจะบังคับให้สะท้อนจากต้นทางไปยังปลายทางได้อย่างไร (ลบสิ่งใดในปลายทางที่ไม่ได้อยู่ในต้นทาง) แทนที่จะคัดลอกสองทิศทาง
Gabriel Staples

1
rsync -gloptrunc --delete --delete-excluded $srcdir $dstdirดูเหมือนว่าคุณจะต้องใช้ การแจ้ง--deleteว่าจะลบสิ่งใดก็ตามในปลายทางที่ไม่ได้อยู่ในแหล่งที่มาและ--delete-excludedบอกว่าจะลบไฟล์ที่ยกเว้นในปลายทางซึ่งปกติแล้วจะไม่ถูกติดตามหรือคัดลอก ถ้าคุณใช้--delete-excludedคุณไม่จำเป็นต้องใช้เทคนิค--deleteแต่ก็ใช้ได้ทั้งคู่ โดยมีรายละเอียดในหน้าคนที่นี่: linux.die.net/man/1/rsync
Gabriel Staples

หมายเหตุ: สำหรับการใช้งาน rsync ทั่วไปฉันได้เขียนบทช่วยสอนนี้เองเช่นกันดังนั้นฉันสามารถอ้างอิงได้ตามต้องการ: วิธีใช้ rsync
Gabriel Staples

4

ไม่จำเป็นต้องใช้เลยคุณสามารถใช้ rsync ได้โดยไม่ต้องใช้ daemons ใด ๆ หรือการกำหนดค่าอื่นใดเพียงแค่ปรับแต่ง!

เพียงใช้คำสั่ง rsync และคุณพร้อมที่จะไป


2

ตัดสินโดยพา ธ ในคำสั่ง rsync ของคุณฉันจะคิดถูกไหมว่าคุณใช้ Mac OS X

ส่วนตัวผมเลือกใช้ Time Machine (ถ้าคุณใช้ Leopard) หรือ Carbon Copy Cloner ( http://www.bombich.com/software/ccc.html ) ซึ่งใช้ rsync

ง่ายกว่าการพยายามเขียนสคริปต์ให้ถูกต้อง ข้อดีอย่างหนึ่งคือ Time Machine และ CCC จะให้ข้อมูลสำรองที่เพิ่มขึ้น


2

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

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

rsync -aE --link-dest=/mnt/external_disk/backup_20090612 dir_to_backup \
    /mnt/external_disk/backup_20090613

สิ่งนี้ถือว่าคุณมีการสำรองวันที่ 12 มิถุนายนและคุณต้องการสร้างใหม่ในวันที่ 13 มิถุนายนคุณอาจไม่ต้องการใช้ตัวเลือก -v หากคุณไม่ต้องการพิมพ์ไฟล์ทุกไฟล์


1
rsnapshot เป็นระบบสำรองข้อมูลที่ใช้ link-dest ตามที่คุณอธิบายเพื่อเก็บการสำรองข้อมูลเวอร์ชันเต็มไว้อย่างมีประสิทธิภาพ
Rory

1

มันขึ้นอยู่กับว่าคุณกำลังใช้ฐานข้อมูลหรือไม่ Rsync จะจับภาพของทุกไฟล์และละเว้นการเขียนใด ๆ หากคุณต้องการสำรองฐานข้อมูลคุณควรดูการตั้งค่าตัวกรองการเพิกเฉยและเรียกใช้เครื่องมือการถ่ายโอนข้อมูล DB ก่อน rsync


1

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


1

คุณไม่ได้พูดถึงระบบปฏิบัติการของคุณ ไปตามสมมติฐานที่ว่า * ระบบปฏิบัติการที่ใช้ระบบปฏิบัติการ nix คำสั่งของคุณนั้นดี

อย่างไรก็ตามหากหนึ่งหรือทั้งสองไดรฟ์มีรูปแบบ NTFS การเข้าถึงจาก * nix หรือแม้กระทั่งจากภายใน Windows โดยใช้ Mobaxterm / cygwin การทำงานที่เพิ่มขึ้นของ rsync จะไม่สามารถทำงานได้ดี rsync -a (archive flag)

หากมีการเกี่ยวข้องกับไดรฟ์ NTFS คุณสามารถใช้:

rsync -rvh --size-only --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

ดาวน์โหลด Mobaxterm ssh client เพื่อให้สามารถใช้งาน rsync ได้บน Windows

นี่คือข้อมูลเพิ่มเติมเกี่ยวกับการใช้ rsync กับไดรฟ์ NTFS


0

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

ฉันค้นคว้าเล็กน้อยและลองหลาย ๆ อัน (โดยทั่วไปจะทำการทดสอบทุกคนจากการสำรองข้อมูลการค้นหา apt-cache ใน Ubuntu)

ในที่สุดฉันก็ลงเอยด้วย ' backup2l - เครื่องมือสำรอง / กู้คืนการบำรุงรักษาต่ำ' มันง่าย ฉันชอบวิธีการจัดการการวางแผนและการหมุน (ในระดับ) ฉันรันทุกครั้งที่มีไดรฟ์ภายนอก USB ติดอยู่จากบรรทัดคำสั่ง แต่คุณสามารถทำให้เป็นอัตโนมัติได้


0

ลองใช้ความพยายามที่จะสำรองข้อมูล http://www.dirvish.org/
มันใช้ hardlinks จาก rsync ในห้องใต้ดินที่เรียกว่า คุณสามารถเก็บขยะที่เก่ากว่าได้มากเท่าที่ดิสก์ USB สามารถทำได้ หรือตั้งค่าด้วยวิธีอัตโนมัติ

เมื่อคุณเข้าใจความคิดของการ dirvish มันง่ายกว่าการใช้มากกว่า rsync กับตัวเลือกทั้งหมดของเขามันเอง


rsnapshot ไม่คล้ายกับ dirvish
Rory

0

ฉันหาวิธีแก้ปัญหาสำหรับคอมพิวเตอร์ที่ใช้ Windows: http://www.itefix.no/i2/node/10650

ในการคัดลอก D: \ partition ไปยังไดรฟ์ภายนอก K: \

rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k

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