เราต้องการสำรองข้อมูลทุกอย่างบนเซิร์ฟเวอร์ Debian ของเราซึ่งทำงานจากระยะไกลในอีกฝั่งหนึ่งของโลก (โฮสต์โดย Linode) โดยไม่ต้องปิดเครื่อง
ระบบนี้ใช้เชลล์, อีเมล์, XMPP / prosody และเว็บด้วยการตั้งค่า nginx อย่างง่าย
เราต้องการสำรองไฟล์ที่เกี่ยวข้องกับสิ่งเหล่านั้นเพื่อความปลอดภัย ตัวอย่างเช่นผู้ใช้ไฟล์ได้จัดเก็บไว้ในไดเรกทอรีบ้านของพวกเขา
เราไม่จำเป็นต้องคัดลอกไฟล์ติดตั้งที่มีอยู่ทุกไฟล์เดียว / etc; แต่เหตุผลที่เราทำสำรองในตอนแรกก็คือเพื่อให้เราสามารถย้ายมันทั้งหมดไปยังการตั้งค่าใหม่ (Debian เวอร์ชั่นใหม่ยังอยู่ใน Linode)
ฉันเห็นว่า Linode มีบริการสำรองข้อมูล แต่ในระยะยาวเรายังต้องการการสำรองข้อมูลของเราเองที่นี่ในกรณีที่พวกเขาไปหรือสิ่งอื่นที่เกิดขึ้นแปลก
เหตุผลที่คำถามนี้มีอยู่คือเมื่อฉันพยายามทำการสำรองข้อมูลในอดีตฉันได้ทำผิดพลาดอย่างใดอย่างหนึ่งต่อไปนี้:
- ฉันไป "ตกลงฉันจะคัดลอก
/
และทุกอย่างภายใต้มัน" และจากนั้นก็ติดอยู่ในวงวนไม่สิ้นสุดแปลก ๆ อย่างใดอย่างหนึ่งเพราะไดรฟ์ที่ฉันคัดลอกไปติดตั้งภายใต้ / สื่อ / สำรองข้อมูลและมันก็คัดลอกตัวเองซ้ำ ๆ ปัญหาเฉพาะนั้นไม่สามารถใช้งานได้ที่นี่เนื่องจากเราจะทำการสำรองข้อมูลผ่าน rsync หรือคล้ายกัน] หรือมีปัญหาในการพยายามคัดลอกบางสิ่งที่ "มีชีวิต" ใน / proc หรือ / var หรืออะไรก็ตามเช่นพยายามติดตามบันทึกที่เปลี่ยนแปลงตลอดเวลาหรือ - ฉันไปแล้ว "ตกลงฉันจะเอาขั้นต่ำที่เปลือยเปล่าของสิ่งที่เราต้องการ ... อืมมไดเรกทอรีบ้านของทุกคนและไดเรกทอรีเว็บเซิร์ฟเวอร์ของเรา (ทั้งหมดข้างล่าง
/var
) และขอขัดขวางสำเนา/etc
และจดหมายเก่าทั้งหมดภายใต้ / var / vmail "และจากนั้นฉันมักจะวิเคราะห์สิทธิ์การใช้งานไฟล์หรือการประทับเวลา (จะต้องแน่ใจว่าฉันไม่ได้ทำการสำรองไฟล์ยูนิกซ์ไปยังไดรฟ์ FAT ในครั้งนี้) หรือลืมบางสิ่ง (" โอ้, ยิงฉันมีสคริปต์ที่กำหนดเองใน / usr / ท้องถิ่น / ถังขยะที่ฉันไม่เคยเก็บไว้ที่อื่นฉันลืมที่จะรับพวกเขาเดาว่าตอนนี้พวกเขาหายไปแล้ว ")
ดังนั้นการคัดลอก obv ทั้งไดรฟ์ตรงขึ้นนำไปสู่ข้อผิดพลาดและการคัดลอกไดเรกทอรีที่เลือกนำไปสู่ข้อผิดพลาด ฉันต้องการทราบวิธีการทำให้ถูกต้อง
คำถาม Server Fault มีความจำเป็นอะไรสำหรับระบบสำรองข้อมูลที่สมบูรณ์ ครอบคลุมปรัชญาและแนวปฏิบัติที่ดี แต่ฉันกำลังมองหารายละเอียดเฉพาะเหล่านี้ของ:
- ฉันต้องคัดลอกไดเรกทอรีใดบ้างและฉันต้องแยกออก (เนื่องจากเป็นระบบที่ใช้งานอยู่ในปัจจุบันและบริการ wiki, แชท XMPP, อีเมล - มีข้อความใหม่เข้ามาในขณะที่งานคัดลอกกำลังทำงานอยู่)
- แอตทริบิวต์ไฟล์ใดเช่นการประทับเวลา & เจ้าของ & กลุ่มฉันต้องนำเสนอและฉันต้องทำอย่างไร ←ฉันคิดว่าฉันสามารถตอบคำถามครึ่งนี้ได้ด้วยตัวเองเช่น…อืม…
rsync -HXaz
ฉันคิดว่าเป็นตัวเลือกที่ดีสำหรับเรา-z
obv ไม่เกี่ยวข้องจริงๆกับคำถามซึ่งก็คือ "สิ่งที่ฉันรักษา"
คำแนะนำการสำรองข้อมูลที่ฉันเห็นว่าใช้dd
งานดูเหมือนว่าจะมีการสันนิษฐานไว้ก่อนว่าไดรฟ์นั้นถูกถอดออกและไม่ได้ใช้งาน แต่ฉันไม่ควรจะยกเว้น "ชีวิต" ไดเรกทอรีเช่น / proc และบางส่วนของไดเรกทอรีย่อยที่อยู่ภายใต้ / var ( แต่บางสิ่งภายใต้ / var ฉันรู้ว่าแน่นอนเราทำจำเป็นที่จะต้องให้) และ / ติด? มีอะไรอีกบ้างที่ฉันต้องคิดในสถานการณ์นี้ จากนั้นฉันเดาว่าฉันสามารถดักฟังมันด้วย rsync และใช้--exclude
ธงจำนวนมาก
หรือมีความคิดที่ดีกว่าโดยเฉพาะอย่างยิ่ง FOSS ที่เป็นมิตร
cp -r -a
จะรักษาแอตทริบิวต์ของไฟล์ให้ได้มากที่สุดเมื่อคัดลอกไฟล์ (ขึ้นอยู่กับระบบไฟล์เป้าหมายที่รองรับ) การ-a
ตั้งค่าสถานะสั่งcp
ให้เก็บรักษาแอตทริบิวต์ สำหรับการคัดลอกผ่านเครือข่ายหรือผ่านระบบไฟล์ที่ไม่รองรับคุณสมบัติที่จำเป็นต้องใช้งานtar -c
ได้เสมอสำหรับฉันแม้ว่าฉันเชื่อว่ามีบางกรณีที่ขอบไม่ครอบคลุมและโดยเฉพาะอย่างยิ่งฉันเชื่อว่าtar
โดยค่าเริ่มต้นขึ้นอยู่กับชื่อผู้ใช้ที่ตรงกัน ทั้งสองระบบ ที่กล่าวว่าฉันได้คัดลอกทั้งระบบ Linux (unmount) โดยใช้tar
ไม่มีปัญหาใด ๆ ที่ชัดเจน