Linux - ไดเร็กทอรีใดที่ฉันควรแยกออกเมื่อทำการสำรองข้อมูลเซิร์ฟเวอร์?


37

ฉันสำรองเซิร์ฟเวอร์ Linux และเก็บไว้ในเซิร์ฟเวอร์อื่น

เริ่มด้วยวิธีง่าย ๆ

rsync -aPh --del server.example.com:/ /mnt/backup

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

มีอะไรอีกบ้างที่ฉันควร / ไม่ควรรวม?

ตัวอย่างเช่นเรื่อง/sysอะไร

คำตอบ:


24

ขึ้นอยู่กับว่าคุณจะกู้คืนระบบของคุณอย่างไร หากคุณจะสร้างใหม่คุณต้องมีไฟล์การกำหนดค่า / ข้อมูลสำหรับบริการของคุณเท่านั้น (เช่น: / etc, / opt, / var, / home)

หากคุณอยู่หลังจากการคืนค่าระบบเต็มรูปแบบคุณสามารถละเว้น / proc, / boot & / dev จากนั้นคุณสามารถติดตั้งระบบปฏิบัติการขั้นต่ำจากสื่อสำหรับบูตจากนั้นกู้คืนระบบผ่านการสำรองข้อมูลของคุณ

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

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


5
อย่าละเว้น/bootทั้งหมด - คุณอาจต้องเปรียบเทียบการกำหนดค่าการบูตเก่ากับการกำหนดค่าการบูตใหม่ อย่าลืมเรียกคืน /bootยกเว้นด้วยตนเอง
ต้มตุ๋น Quixote

5
และยกเว้น / sys เช่นกัน ... และหากต้องการคืนค่าเป็นโลหะเปลือยคุณควรยกเว้น /etc/udev/rules.d/ ด้วย
wazoox

2
ก็หายไป + พบว่าสำหรับระบบไฟล์ / mnt และ / media ที่จะไม่คัดลอกอุปกรณ์ที่ติดตั้งใด ๆ
blade

29

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

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

มีระบบไฟล์อื่น ๆ ที่คุณไม่ควรสำรอง; usbfs(ปกติจะอยู่ที่/proc/bus/usbถ้าติดที่ทั้งหมด), debugfs(ควรจะเป็นที่/sys/kernel/debugถ้าติดที่ทุกคน แต่บางคนใส่ไว้ที่ไหนสักแห่งอื่นนั้นคุณอาจจะไม่ได้มีหนึ่งในนี้) devpts(ติดตั้งที่/dev/pts) อื่น ๆtmpfsอินสแตนซ์ (มักจะพบได้ที่/dev/shm, /var/run, /var/lockและสถานที่อื่น ๆ การสำรองข้อมูลและการกู้คืนควรไม่เป็นอันตราย แต่ไม่มีจุดหมายเนื่องจากเนื้อหาของพวกเขาหายไปเมื่อปิดระบบ) และระบบไฟล์ระยะไกลหรือไดเรกทอรีระบบค้นหาเวทย์มนตร์อัตโนมัติ (การพยายามสำรองข้อมูล สิ้นสุดการสำรอง / เรียกคืนไปยังเครื่องอื่น ) คุณควรระวัง/mediaและด้วย/mntเนื่องจากอุปกรณ์ภายนอก (เช่นซีดีที่คุณลืมในไดรฟ์) สามารถพบได้ที่นั่น แต่คุณอาจใช้อุปกรณ์เหล่านี้เพื่อติดตั้งบางสิ่งที่ควรสำรองไว้

โปรดทราบว่านอกเหนือจากที่ไม่เป็นอันตรายส่วนใหญ่tmpfsกรณี filesystems เครือข่าย / automounters และสื่อที่ถอดออกได้, ระบบไฟล์ที่คุณไม่ควรกลับมาเป็นลูกหลานของ/dev, หรือ/proc /sysหากคุณไม่มีระบบไฟล์เครือข่าย (หรือเคาน์เตอร์อัตโนมัติ) และไม่มีสื่อบันทึกแบบถอดได้ยกเว้น/sysและ/procและรีบูตเครื่องหลังจากการกู้คืน (เพื่อล้างtmpfsอินสแตนซ์) ควรจะเพียงพอ



8

ไฟล์พิเศษบางไฟล์ใน / proc และ / sys สร้างความสับสนให้ rsync คุณไม่ต้องการสำรองข้อมูลระบบไฟล์เครือข่ายที่ติดตั้งด้วยเช่นกัน ไฟล์ที่กระจัดกระจายอาจทำให้เกิดปัญหา

เพิ่ม -x เพื่อ จำกัด ให้เป็นหนึ่งระบบไฟล์ ซึ่งหลีกเลี่ยงระบบไฟล์เครือข่ายทั้งหมดและ / proc เป็นต้นอย่างไรก็ตามคุณต้องรันหนึ่ง rsync สำหรับระบบไฟล์แต่ละระบบที่คุณติดตั้ง

เพิ่ม -S เพื่อจัดการไฟล์ที่กระจัดกระจายอย่างสมเหตุสมผล


4

/ boot, / dev และ / proc ค่อนข้างไร้ประโยชน์ในการสำรองข้อมูล แต่ถ้าคุณรู้ว่าคุณกำลังทำอะไรอยู่คุณสามารถสำรอง / บูตได้

ฉันจะไม่สำรองข้อมูล / lib, / media, / mnt, / sbin, / bin, / srv, / sys หรือ / tmp

/ usr เป็นทางเลือกขึ้นอยู่กับว่าคุณมีข้อมูลสำรองใน / usr หรือไม่ ถ้าฉันเป็นคุณฉันกังวลมากที่สุดเกี่ยวกับการสำรองข้อมูล $ HOMEs / var และ / etc ของผู้ใช้ (สำหรับไฟล์การกำหนดค่า)

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


ฉันต้องการที่จะเรียกคืนจากการใช้โคลนสำรองข้อมูลบนเครื่องใหม่
Rory

คุณหมายถึงอะไรโดย "การโคลนนิ่ง"? คุณสามารถสำรองข้อมูลพาร์ติชันดิบได้เสมอโดยใช้ dd และ sfdisk sfdisk -d> partition_table.part dd ถ้า = / dev / sda1 ของ = dev.sda1.img (ทำสิ่งนี้สำหรับแต่ละพาร์ติชัน) จากนั้นในระบบใหม่ของคุณ: sfdisk / dev / sda <partition_table.part dd if = dev.sda1.img จาก = / dev / sda1 (สำหรับแต่ละพาร์ติชันอีกครั้ง)
Michael Pobega

เนื่องจากระบบความคิดเห็นไม่ชอบแท็กรหัสฉันจึงโพสต์คำตอบอื่น
Michael Pobega

@MichaelPobega หากคุณสำรองข้อมูลพาร์ติชันดิบตามที่คุณพูดคุณจะต้องคัดลอกขนาดดิสก์ทั้งหมด ทำไมคัดลอก 512GB เมื่อคุณใช้ดิสก์ 80BG ของคุณเท่านั้น ด้วยrsyncคุณไม่เพียง แต่คัดลอกเพียงสิ่งที่คุณได้ใช้ แต่ยังเปิดใช้งานการซิงค์ในอนาคตเพื่อให้คุณสามารถทำงานได้อย่างปลอดภัยงาน cron สำหรับมัน
สูงสุด

กลับมาอีกหลายปีต่อมาประสบการณ์อันยาวนานของฉันสอนให้ฉันรู้ว่า @Max ถูกต้อง
Michael Pobega

3

คุณสามารถทำการสำรองข้อมูลทั้งหมดโดยใช้ sfdisk และ dd


หากต้องการสำรองข้อมูลชุดรูปแบบพาร์ติชันของฮาร์ดไดรฟ์แต่ละตัวคุณจะต้องใช้ sfdisk ดังนี้:

sfdisk -d /dev/sda  > parttable_sda.part

หากต้องการสำรองข้อมูลแต่ละพาร์ติชันคุณสามารถใช้ dd ได้เช่น:

dd if=/dev/sda1 of=devsda1.img

/dev/sda1ไม่ได้ต่อเชื่อมที่ไหนเช่นกับ live-CD boot

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


จากนั้นในการกู้คืนในคอมพิวเตอร์เครื่องอื่นคุณสามารถทำได้:

sfdisk /dev/sda < parttable_sda.part
dd if=devsda1.img of=/dev/sda1    # do this for each partition

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

dd เป็นวิธีที่จะไป บูตด้วย LiveCD แน่นอน และสิ่งสำคัญคือdd if=/dev/urandom of=/dev/sdb bs=512 count=12ต้องล้าง MBR และตารางพาร์ติชันของไดรฟ์เป้าหมาย
SDsolar

2

แทนที่จะยกเว้นฉันมักจะสำรองข้อมูลในสิ่งที่ฉันต้องการ รวมถึง: /home /etc /var(ยกเว้น/var/log)


1

โดยทั่วไปไม่จำเป็นต้องทำการสำรองข้อมูลระบบไฟล์หลอก (/ proc, / sys, / dev / shm ... )


1

ตามที่ชุมชนผู้ยิ่งใหญ่ชี้ไปที่:

/ dev / proc / sys / tmp / run / media / lost + found / boot (/ boot เป็นตัวเลือกดูความคิดเห็นอื่น ๆ )

สำหรับการอ้างอิงคำสั่ง rsync สุดท้ายของฉัน (ใต้ Arch ด้วยสื่อภายนอกที่เมาท์ใน '/ run / media / fred / INTENSO /' และสำรองข้อมูลไปยังโฟลเดอร์ที่ชื่อว่า 'fred') คือ:

$ sudo rsync -Pazhmxv --exclude / run / media --exclude / dev --exclude / สูญหาย + พบ --exclude / tmp --exclude / proc --exclude / sys / / run / media / เฟร็ด / INTENSO / เฟร็ด /

(ไฟล์ที่แยกสามารถระบุด้วยวงเล็บปีกกา (--exclude = {/ dev, / proc}) ภายใต้ Bash หรือไฟล์ข้อความ (--exclude-from = 'excude.txt')

-P: แสดงความคืบหน้า -a: โหมดเก็บถาวร -z: บีบอัดระหว่างการถ่ายโอน -h: หมายเลขเอาต์พุตในรูปแบบที่มนุษย์อ่านได้ -m: พรุนไดเรกทอรีว่างเปล่า -x: จำกัด หนึ่งระบบไฟล์ -v: verbose


1

ฉันอยู่ในเครื่อง Ubuntu 18.04 และฉันมีสิ่งเหล่านี้ยกเว้น:

/dev/
/proc/
/sys/
/tmp/
/run/
/mnt/
/media/
/lost+found/
/cdrom/
/swapfile

นอกจากนี้สำหรับการตั้งค่าของฉันโดยเฉพาะฉันไม่รวมสิ่งเหล่านี้:

/home            <-- Backed up separately
/backup          <-- Mount point for backup disks
/data            <-- Mount point for data disks, which are backed up off-site
/scratch         <-- Mount point for volatile fast SSD scratch disk

0

โดยทั่วไปฉันมักจะทำการสำรองข้อมูลทุกอย่างในระบบแม้แต่สิ่งที่ฉันรู้ว่าแน่นอนว่าไม่มีประโยชน์ในการสำรองข้อมูล การตั้งค่าง่ายขึ้นและคุณสามารถมั่นใจได้ 100% ว่าคุณจะได้ทุกอย่างที่คุณต้องการรวมอยู่ในการสำรองข้อมูล


1
ใช่ แต่คำถามติดตามคือสิ่งที่คุณ rem0ove จากการสำรองข้อมูลของคุณว่าไม่จำเป็น?
Rory

ซึ่งฉันจะตอบ: "ไม่มีอะไร"
Maximus Minimus

จริง คุณแยกออกจากกระบวนการกู้คืนไม่ใช่ตัวสำรอง แต่คุณอาจจะยังคงต้องการที่จะปล่อยออกมา/procและเพื่อที่จะไม่ให้เกิดความสับสนน้อยยากจน/dev rsync
TJ Crowder

1
@ mh คุณจะกู้คืน / proc / kcore ซึ่งเป็นหน่วยความจำของเซิร์ฟเวอร์เดิมหรือไม่ ว่าเสียงบิตโง่ ...
Rory

0

ฉันใช้กล่อง Ubuntu linux เป็นเซิร์ฟเวอร์ทดสอบสำหรับการพัฒนาเว็บไซต์และสำหรับโฮสต์เอกสาร wiki แต่ละคืน crontab จะทิ้งฐานข้อมูล MySQL ไว้ใน / var / www แล้ว / var / www ทั้งหมดจะถูกซิปและคัดลอกไปยังเซิร์ฟเวอร์สำรอง มันไม่เหมาะ แต่ก็เพียงพอแล้ว ฉันต้องสร้างเซิร์ฟเวอร์ใหม่ ณ จุดหนึ่งและสิ่งที่ฉันพลาดไปจริงๆคือไฟล์กำหนดค่าของ Apache และ Samba


0

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


0

คำถาม: ฉันควรแยกไดเรกทอรีใดเมื่อทำการสำรองข้อมูลเซิร์ฟเวอร์

นี่คือสคริปต์ที่ฉันใช้บ่อย ๆ ตั้งแต่แล็ปท็อป Ubuntu 16.04 LTS ไปจนถึงเซิร์ฟเวอร์ Ubuntu 16.04 LTS มันแสดงให้เห็นอย่างชัดเจนว่าไดเรกทอรีใดควรข้ามในขณะที่ทำการสำรองข้อมูลเต็มรูปแบบ:

echo "EMPTYING TRASH"
rm -rf ~/.local/share/Trash/* >/dev/null 2>&1
echo "DELETING OLD LOGS"
sudo rm -f /var/tmp/* >/dev/null 2>&1
sudo rm -f /var/log/*.gz >/dev/null 2>&1
sudo rm -f /var/log/kern* >/dev/null 2>&1
sudo rm -f /var/log/messages* >/dev/null 2>&1
echo "DELETING CHROMIUM CACHE"
rm -rf /home/pi/.cache/chromium/Default/Cache/* >/dev/null 2>&1
echo "====================================================================="
echo "      BEGINNING RSYNC from PAV root to PRIME5:/mnt/full/pav"
echo "====================================================================="
time sudo rsync -aAXv \
          / \
          --bwlimit=500 \
          --delete \
          --delete-excluded \
          --ignore-errors \
          --exclude="/dev/*" \
          --exclude="/proc/*" \
          --exclude="/sys/*" \
          --exclude="/tmp/*" \
          --exclude="/run/*" \
          --exclude="/mnt/*" \
          --exclude="/media/*" \
          --exclude="/lost+found" \
          abc@prime5:/mnt/full/pav
echo "====================================================================="
df -h

โปรดสังเกตการยกเว้น/mnt- ซึ่งเป็นที่ที่แต่ละระบบ Ubuntu มีไดรฟ์สำรองเต็มเวลาสำหรับติดตั้งการrsyncสำรองข้อมูลด้วยตนเองโดยใช้ cron 4 ครั้งต่อวัน ไดรฟ์เหล่านี้จะติดตั้งโดยรายการในfstabและมีอยู่เสมอ หากต้องการรวมไว้ในการสำรองข้อมูลไปยังระบบอื่นจะเป็นการทำซ้ำ

ในทำนองเดียวกัน/mediaเป็นที่ที่ไดรฟ์ USB ติดตั้งอยู่ พวกเขาสำรองแยก

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