มีหลายวิธีที่เราใช้สำรองข้อมูลหรือแม้แต่ระบบทั้งระบบ วิธีพื้นฐานในการสำรองข้อมูลสามารถทำได้โดยใช้คำสั่ง cp (copy) หรือเราสามารถใช้คำสั่งอย่าง rsync ซึ่งเป็นเครื่องมือที่มีประสิทธิภาพมากในการสำรองข้อมูล หรือเราสามารถสำเนาข้อมูลแบบดิสก์สู่ดิสก์ด้วยคำสั่ง dd
คำสั่ง cp
เราใช้คำสั่ง cp ในการสำเนาไฟล์จากที่นึงไปยังอีกที่นึงซึ่งไดเร็คทอรี่ต้นทางและปลายทางอาจจะอยู่ภายในเครื่องเดียวกันหรือคนละเครื่องก็ได้ หากไดเร็คทอรี่อยู่คนละเครื่องจะต้องเชื่อมต่อโครงสร้างระบบแฟ้มข้อมูลโดยใช้ NFS
คำสั่ง rsync
rsync เป็นเครื่องมือที่มีประสิทธิภาพมากในการสำรองข้อมูลเนื่องจาก rsync สามารถตรวจสอบได้ว่าไฟล์เคยถูกสำเนาไว้แล้วหรือยัง หากเคยถูกสำเนาไว้แล้วมีการเปลี่ยนแปลงขนาดหรือวันที่ในการแก้ไขไฟล์หรือไม่ เพื่อประหยัดเวลาในการสำเนาโดยไม่จำเป็นจึงทำงานได้อย่างรวดเร็ว
rsync สามารถสำเนาไฟล์ข้ามเครื่องได้โดยการอ้างอิงปลายทางในรูปแบบ target : path โดย target คือเครื่องปลายทางที่ต้องการสำเนาข้อมูลไป และรองรับการอ้างอิงเครื่องปลายทางในรูปแบบ user@hostname ด้วย
rsync มีออปชั่น -r (recursive) ที่ช่วยให้โปรแกรมสามารถวนซ้ำเพื่อสำเนาทุกไฟล์และทุกไดเร็คทอรี่ภายใต้ไดเร็คทอรี่ย่อยที่กำหนดได้ทั้งหมด ตัวอย่างการใช้คำสั่ง rsync เพื่อสำรองข้อมูลของไดเร็คทอรี่ที่กำหนดเช่น
rsync -r project-X backupagent@backupserver:archives/project-X
จากตัวอย่างเป็นการสั่งให้ rsync สำรองไฟล์และไดเร็คทอรี่ทั้งหมดภายใต้ไดเร็คทอรี่ project-X ไปยังพาธ archives/project-X ในเครื่องชื่อ backupserver โดยใช้สิทธิของผู้ใช้งานที่ชื่อ backupagent ซึ่งเป็นชื่อผู้ใช้งานบนเครื่องชื่อ backupserver นั่นเอง หรือในกรณีที่มีการเชื่อมต่อ โครงสร้างระบบแฟ้มข้อมูลของเครื่อง backupserver มาที่ mount point ชื่อ backupfs เราสามารถใช้คำสั่ง rsync ได้ดังนี้
rsync -r project-X backupfs/archives/project-X
อย่างไรก็ตามคำสั่ง rsync ก็สามารถก่ออันตรายได้ เช่น หากเราสำเนาข้อมูลทับไปยังที่ที่ไม่ต้องการโดยไม่ได้ตั้งใจ ดังนั้นให้ตรวจสอบ
ออปชั่นที่จะใช้และปลายทางที่จะสำรองข้อมูลไปเก็บให้ดี เราสามารถใช้ออปชั่น –dry–run เพื่อยืนยันว่าผลลัพธ์เป็นไปตามที่ต้องการก่อนที่จะเริ่มการสำรองข้อมูลจริง
คำสั่ง dd
นอกจากนี้เรายังมีคำสั่ง dd ที่ใช้ในการสำเนาข้อมูลพื้นที่ของดิสก์ เรียกได้ว่าเป็นสำเนาข้อมูลกันแบบบิตต่อบิตเลยทีเดียวตัวอย่างเช่น
- dd if=/dev/sda of=sda.mbr bs=512 count=1 เป็นการสำเนาข้อมูลของ master boot record ซึ่งคือพื้นที่ 512 ไบต์แรกของเซคเตอร์แรกของดิสก์ที่เก็บตารางข้อมูลในการระบุพาร์ทิชั่นของดิสก์
- dd if=/dev/sda of=/dev/sdb เป็นการสำเนาข้อมูลแบบยกดิสก์จาก /dev/sda ไปยัง /dev/sdb (ระวังเนื่องจากหากมีข้อมูลในดิสก์ปลายทาง ขอ้มูลดังกล่าวจะหายไปทั้งหมด)