เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | เนื้อหา | ถัดไป>

การซิงโครไนซ์ไฟล์และไดเร็กทอรี

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

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

rsync ถูกเรียกใช้เช่นนี้:

rsync ตัวเลือก ต้นทาง ปลายทาง

ที่ไหน แหล่ง และ ปลายทาง เป็นหนึ่งในสิ่งต่อไปนี้:


● ไฟล์หรือไดเรกทอรีในเครื่อง

● ไฟล์หรือไดเรกทอรีระยะไกลในรูปแบบของ [user@]โฮสต์:เส้นทาง

● เซิร์ฟเวอร์ rsync ระยะไกลที่ระบุด้วย URI ของ rsync://[user@]host[:port]/path

โปรดทราบว่าต้นทางหรือปลายทางต้องเป็นไฟล์ในเครื่อง ไม่รองรับการทำสำเนาจากระยะไกลไปยังระยะไกล

มาลองกัน rsync ออกในไฟล์บางไฟล์ในเครื่อง อันดับแรก มาทำความสะอาด .ของเรากันก่อน foo ไดเรกทอรี:


[me@linuxbox ~]$ rm -rf ฟู/*

[me@linuxbox ~]$ rm -rf ฟู/*


ต่อไป เราจะซิงโครไนซ์ สนามเด็กเล่น ไดเรกทอรีที่มีสำเนาที่สอดคล้องกันใน foo:


[me@linuxbox ~]$ rsync -av สนามเด็กเล่น foo

[me@linuxbox ~]$ rsync -av สนามเด็กเล่น foo


เราได้รวมทั้ง -a ตัวเลือก (สำหรับการเก็บถาวร-ทำให้เกิดการเรียกซ้ำและการเก็บรักษาแอตทริบิวต์ของไฟล์) และ -v ตัวเลือก (เอาต์พุตแบบละเอียด) เพื่อสร้าง a กระจก ของ สนามเด็กเล่น ไดเรกทอรีภายใน foo. ขณะที่รันคำสั่ง เราจะเห็นรายการไฟล์และไดเร็กทอรีที่ถูกคัดลอก ในตอนท้ายเราจะเห็นข้อความสรุปดังนี้:



ส่ง 135759 ไบต์ รับ 57870 ไบต์ 387258.00 ไบต์/วินาที ขนาดรวม 3230 เร่งความเร็ว 0.02

ส่ง 135759 ไบต์ รับ 57870 ไบต์ 387258.00 ไบต์/วินาที ขนาดรวม 3230 เร่งความเร็ว 0.02


ระบุจำนวนการคัดลอกที่ทำ หากเรารันคำสั่งอีกครั้ง เราจะเห็นผลลัพธ์ที่แตกต่าง:



[me@linuxbox ~]$ rsync -av playgound foo

รายการไฟล์สร้าง ... เสร็จแล้ว


ส่ง 22635 ไบต์ รับ 20 ไบต์ 45310.00 ไบต์/วินาที ขนาดรวม 3230 เร่งความเร็ว 0.14

[me@linuxbox ~]$ rsync -av playgound foo

รายการไฟล์สร้าง ... เสร็จแล้ว


ส่ง 22635 ไบต์ รับ 20 ไบต์ 45310.00 ไบต์/วินาที ขนาดรวม 3230 เร่งความเร็ว 0.14


สังเกตว่าไม่มีรายการไฟล์ นี้เป็นเพราะ rsync พบว่าไม่มีความแตกต่างระหว่าง ~/สนามเด็กเล่น และ ~/foo/สนามเด็กเล่นดังนั้นจึงไม่จำเป็นต้องคัดลอกอะไรเลย หากเราแก้ไขไฟล์ใน สนามเด็กเล่น และวิ่ง rsync อีกครั้ง:


[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/dir-099/file-Z [me@linuxbox ~]$ rsync -av สนามเด็กเล่น foo รายการไฟล์สร้าง ... เสร็จแล้ว

สนามเด็กเล่น/dir-099/file-Z

ส่ง 22685 ไบต์ รับ 42 ไบต์ 45454.00 ไบต์/วินาที ขนาดรวม 3230 เร่งความเร็ว 0.14

[me@linuxbox ~]$ สัมผัสสนามเด็กเล่น/dir-099/file-Z [me@linuxbox ~]$ rsync -av สนามเด็กเล่น foo รายการไฟล์สร้าง ... เสร็จแล้ว

สนามเด็กเล่น/dir-099/file-Z

ส่ง 22685 ไบต์ รับ 42 ไบต์ 45454.00 ไบต์/วินาที ขนาดรวม 3230 เร่งความเร็ว 0.14


เราเห็นว่า rsync ตรวจพบการเปลี่ยนแปลงและคัดลอกเฉพาะไฟล์ที่อัปเดต

เป็นตัวอย่างในทางปฏิบัติ ลองพิจารณาฮาร์ดไดรฟ์ภายนอกจินตภาพที่เราเคยใช้ก่อนหน้านี้กับ น้ำมันดิน. หากเราแนบไดรฟ์เข้ากับระบบของเราและติดตั้งอีกครั้งที่ /me-dia/BigDiskเราสามารถทำการสำรองข้อมูลระบบที่มีประโยชน์โดยสร้างไดเร็กทอรีชื่อ .ก่อน /สำรอง บนไดรฟ์ภายนอก แล้วใช้ rsync เพื่อคัดลอกสิ่งที่สำคัญที่สุดจากระบบของเราไปยังไดรฟ์ภายนอก:



[me@linuxbox ~]$ mkdir /media/BigDisk/backup.mkdir

[me@linuxbox ~]$ sudo rsync -av --delete /etc /home /usr/local

/media/BigDisk/สำรอง

[me@linuxbox ~]$ mkdir /media/BigDisk/backup.mkdir

[me@linuxbox ~]$ sudo rsync -av --delete /etc /home /usr/local

/media/BigDisk/สำรอง


ในตัวอย่างนี้ เราคัดลอก / ฯลฯ, / หน้าแรกและ / usr / local ไดเร็กทอรีจากระบบของเราไปยังอุปกรณ์จัดเก็บข้อมูลในจินตนาการของเรา เรารวม --ลบ ตัวเลือกในการลบไฟล์ที่อาจมีอยู่ในอุปกรณ์สำรองข้อมูลที่ไม่มีอยู่ในอุปกรณ์ต้นทางแล้ว (สิ่งนี้ไม่เกี่ยวข้องในครั้งแรกที่เราสำรองข้อมูล แต่จะมีประโยชน์ในสำเนาที่ตามมา) ทำซ้ำขั้นตอนการต่อไดรฟ์ภายนอกและเรียกใช้สิ่งนี้ rsync คำสั่งจะเป็นวิธีที่มีประโยชน์ (แต่ไม่เหมาะ) ในการสำรองข้อมูลระบบขนาดเล็ก แน่นอนว่านามแฝงก็มีประโยชน์เช่นกัน เราสามารถสร้างนามแฝงและเพิ่มลงใน .ของเราได้

.bashrc ไฟล์เพื่อให้คุณลักษณะนี้:


นามแฝง backup='sudo rsync -av --delete /etc /home /usr/local

/media/BigDisk/สำรองข้อมูล'

นามแฝง backup='sudo rsync -av --delete /etc /home /usr/local

/media/BigDisk/สำรองข้อมูล'


ตอนนี้ สิ่งที่เราต้องทำคือแนบไดรฟ์ภายนอกและเรียกใช้ การสำรองข้อมูล สั่งให้ทำหน้าที่


 

ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: