โฟลเดอร์ใดที่จะรวมในการสำรองข้อมูล


28

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


ใช่ฉันต้องการทราบว่าไฟล์สำคัญคืออะไรโดยไม่ต้องสำรองข้อมูลไดรฟ์ทั้งหมด Crontabs (ผู้ใช้และผู้ใช้), exportfs ฯลฯ
Sridhar Sarnobat

คำตอบ:


25

ชุดสำรองของฉันมีอยู่ในปัจจุบัน

/etc
/home
/root
/srv
/usr (/usr/local only, nothing else)
/var (except /var/run, /var/cache, /var/tmp)

โปรดทราบว่านี่เป็นเซิร์ฟเวอร์ดังนั้นการสำรองข้อมูลเช่น/ etcจะบันทึกการกำหนดค่าทั้งหมดของฉันสำหรับบริการของฉันฉันมีเว็บเซิร์ฟเวอร์ใน/ srv (แม้ว่าคุณจะมีใน/ var / wwwพวกเขาจะยังอยู่ในชุดสำรองนี้) ฉันมีสคริปต์และสิ่งต่าง ๆ ที่ตั้งค่าใน/ usr / localฯลฯ การสำรองข้อมูล/ homeแทน/ home / myusernameคือเพื่อให้ฉันสามารถรักษาผู้ใช้ทั้งหมดได้ หากสิ่งที่คุณต้องการเก็บไว้เป็นข้อมูลผู้ใช้ของคุณคุณเพียงแค่ต้องการไดเรกทอรีบ้านของคุณ


ทำไมคุณถึงรวมถึง / รูท?
Mohammed Joraid

2
มันเป็นไดเร็กตอรี่หลักของผู้ใช้ root, ฉันเก็บสคริปต์ดูแลระบบไว้ในนั้น, สำหรับการสำรองข้อมูล ฯลฯ แม้ว่าฉันจะย้ายสิ่งเหล่านี้ไปยังส่วนใหญ่แล้วก็ตาม/usr/local/sbin/
thomasrutter

มีความจำเป็นที่จะต้องรวม.cacheโฟลเดอร์ไว้ในโฮมไดเร็กตอรี่ของผู้ใช้แต่ละคน~/.cacheหรือไม่หรือเราจะตัดมันออกไปด้วย? สามารถเป็นไฟล์ได้หลายหมื่นไฟล์และมีข้อมูลหลายกิกะไบต์ ความเข้าใจของฉันคือถ้าเราไม่ได้รวมมันก็หมายความว่าแอปพลิเคชันต้องสร้างใหม่ชั่วคราวไฟล์แคชอีกครั้งในครั้งต่อไปที่พวกเขาทำงานซึ่งจะเพิ่มเวลาทำงานและเวลาเริ่มต้น แต่ไม่เป็นอันตรายใช่ไหม?
Gabriel Staples

1
ไม่รวม~/.cacheเสียงก็โอเคสำหรับฉัน ฉันไม่ได้ยกเว้นด้วยตัวเอง แต่ถ้าคุณต้องการลดเวลาการถ่ายโอนข้อมูล / การซิงค์นั่นอาจเป็นตัวเลือก
thomasrutter

1
@ GabrielStaples ฉันไม่ได้ใช้/optแต่ถ้าคุณใช้มันแล้วคุณอาจรวมไว้ในการสำรองข้อมูลของคุณ /optมีแนวโน้มที่จะไม่ได้ใช้โดย distros ตัวเองออกจากมันขึ้นอยู่กับผู้ใช้ แต่ผู้ขายใบสมัครที่ให้ระบบลินุกซ์กับแอปของบุคคลที่สามของพวกเขาติดตั้งบนมันอาจจะใช้/optหรือถ้าคุณมีการพัฒนาซอฟแวร์ของคุณเองคุณอาจมีมันอยู่ใน/optแทน/usr/local
thomasrutter

10

สิ่งที่คุณต้องการสำรองข้อมูลขึ้นอยู่กับระบบของคุณโดยเฉพาะ *

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

ตัวอย่างเช่นcd /; ls -Fให้ฉัน:

bin/    initrd.img@      mnt/   snap/  vmlinuz@
boot/   initrd.img.old@  opt/   srv/   vmlinuz.old@
cdrom/  lib/             proc/  sys/
dev/    lib64/           root/  tmp/
etc/    lost+found/      run/   usr/
home/   media/           sbin/  var/

/cdrom, /mediaและ/mntเป็นจุดเชื่อมต่อดังนั้นไม่จำเป็นต้องสำรองข้อมูล

/dev, /lost+found, /proc, /run, /sysและ/tmpได้รับอัตโนมัติสร้างขึ้นใหม่ในการรีบูต [ฉันคาดเดาการเชื่อมโยง: /initrd.img@, /initrd.img.old@, /vmlinuz@, /vmlinuz.old@ ได้รับการสร้างขึ้นใหม่ในการบูตอูบุนตูติดตั้ง (ฉันไม่แน่ใจว่าที่).]

ในระบบของฉัน/rootว่างเปล่า (ใช้sudo -sเพื่อเปิดเชลล์ในฐานะผู้ใช้รูทเพื่อดู ... ระวังตัวexitทันทีหลังจากที่คุณตรวจสอบ/root)

/snapยังว่างเปล่า บางทีมันอาจเป็นจุดเมานท์

/varมีข้อมูลตัวแปรเช่นไฟล์บันทึกระบบไดเรกทอรีเมลและสปูลเครื่องพิมพ์และไฟล์ชั่วคราวและชั่วคราว "ตอนนี้ฉันสำรองข้อมูลยกเว้น / var / log ผู้อ้างอิง: http://www.tldp.org/LDP/Linux- ระบบแฟ้ม - ลำดับชั้น / html / var.html )

/bin, /boot, /lib, /lib64และ/sbinสันนิษฐานว่าจะได้รับการติดตั้งโหลดผ่านทางของอูบุนตูถ้าคุณกำลังทำผลงานการพัฒนาระบบหรือสิ่งที่ต้องการ คุณสามารถสำรองข้อมูลเหล่านี้หรือพึ่งพาการติดตั้งใหม่เพื่อกู้คืน

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

ที่ใบการเปลี่ยนแปลงอื่น ๆ ที่คุณได้ทำกับระบบของคุณใน/etc, /opt, /srvและ/usrที่คุณจะต้องการที่จะยังสำรองข้อมูลทั้งร่วมกันหรือเป็นรายบุคคล

นี่เป็นหน้าสองสามหน้าที่อาจช่วยให้เข้าใจไดเรกทอรีเหล่านี้:

http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/the-root-directory.html http://www.tldp.org/LDP/intro-linux/html/sect_03_01.html#sect_03_01_03


แนวความคิดที่เกี่ยวข้องคือ สมมติว่าคุณเพิ่งติดตั้ง Ubuntu ใหม่ คุณต้องสำรองอะไรบ้าง คำตอบ: ไม่มีอะไร คุณยังไม่ได้เปลี่ยนอะไรเลยดังนั้นคุณสามารถติดตั้ง Ubuntu ใหม่ได้ เรียกคืน / bin, / etc, / root, / usr เป็นต้น

เหตุผลเดียวที่คุณอาจต้องการสำรองข้อมูล / bin คือเนื่องจากคุณเปลี่ยนแปลงหรือเพิ่มเข้าไป ดังนั้นส่วนหนึ่งของการสำรองข้อมูลคือการทำความเข้าใจกับสิ่งที่และเมื่อมันถูกสร้างและแก้ไข เพิ่งรู้ว่าพวกเราที่เหลือต้องดิ้นรนกับเรื่องนี้เช่นกัน


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


(ฉันเปิดกว้างสำหรับคำแนะนำเกี่ยวกับวิธีทำให้ดีขึ้นได้)


นี่เป็นสิ่งที่ยอดเยี่ยมเมื่อคุณเพ่งความสนใจไปที่การกำหนดค่าและไม่ต้องการไบนารีเช่นคุณบอกว่าพวกเขาสามารถติดตั้งได้อีกครั้งและมันเบากว่าการส่งออกและติดตั้งaskubuntu.com/a/55906/104223
CTS_AE

5

หากฉันติดตั้งระบบเดสก์ท็อปของฉันฉันจะสำรองข้อมูล

  • /etc
  • /varฉันขี้เกียจเกินไปที่จะยกเว้นโฟลเดอร์ย่อยบางโฟลเดอร์
  • /opt

/homeอยู่ในพาร์ทิชันที่แยกต่างหากและมีการสำรองข้อมูลที่ทำทุกวัน

หลังจากติดตั้งใหม่ฉันคืนค่าชิ้นส่วนจากข้อมูลสำรองซึ่งฉันต้องการจริงๆ

ด้วยกลยุทธ์นี้การกำหนดค่าอีเมลภายในเครื่องและการกำหนดค่า crontab ทั้งหมดของฉันนั้นปลอดภัยและฉันต้องติดตั้งแอปพลิเคชันที่ฉันต้องการเท่านั้น

สคริปส่วนตัวของฉันจะถูกบันทึกไว้ในโฟลเดอร์ที่บ้านของฉัน (สำรองข้อมูลรายวัน, จำได้ไหม?) /usr/localดังนั้นฉันไม่ได้ใช้


1
มันจะทำงานได้ไหมถ้าฉันสำรองข้อมูลรูทนั่นคือทุกอย่าง?: ./
ถูกระงับ

นั่นจะเป็นเหมือนโคลนของสิ่งที่ฉันใช้ตอนนี้
ถูกระงับ

สิ่งที่อยู่ใน/optที่เราต้องการ? เช่น: ทำไมต้องสำรองข้อมูล
Gabriel Staples

3

/home/$USER/คนส่วนใหญ่ก็สำรองไดเรกทอรีบ้านของพวกเขา หากคุณต้องการสำรองไฟล์การตั้งค่าและการตั้งค่าไฟล์เหล่านั้นจะถูกเก็บไว้ในโฟลเดอร์และไฟล์ในโฮมไดเร็กตอรี่ของคุณที่ขึ้นต้นด้วย (dot) ทำรายการแพคเกจที่คุณใช้ (และ PPA) และมันจะง่ายต่อการติดตั้งแพ็กเกจทั้งหมดของคุณหากคุณต้องการ หรือใช้คำสั่งที่อธิบายไว้ในความคิดเห็นนี้

การสำรองข้อมูล Deja ซ้ำเป็นเครื่องมือที่ยอดเยี่ยมที่มาเป็นค่าเริ่มต้นบน Ubuntu ตัวเลือกอื่น ๆ ได้แก่ บรรทัดคำสั่ง (rsync, rsnapshot, rdiff-backup เป็นต้น)

สุดท้ายในการสำรองข้อมูลทั้งดิสก์เป็นภาพการตรวจสอบClonezilla


2
นอกจากนี้สิ่งที่ psny คำตอบเชื่อมโยงกับมันจะไม่เจ็บที่จะสร้างการสำรองข้อมูลของไดเรกทอรีทั้งหมด / etc / ที่เก็บการตั้งค่าระบบกว้าง หากคุณทำการเปลี่ยนแปลงที่นั่นจะเป็นประโยชน์หากมีที่เก็บถาวรเพื่อรับการเปลี่ยนแปลงเหล่านั้น
Marcin Kaminski

2
หากคุณมีการติดตั้ง crontabs ใด ๆ ให้สำรองข้อมูล/var/spool/cronด้วย
Ian Dunn

3

มารวบรวมรายชื่อไฟล์ที่นี่ ฉันทำโพสต์นี้ "community wiki"

แน่นอนมันแตกต่างกันไปในแต่ละบุคคล เหมืองส่วนใหญ่จะใช้เป็นเว็บเซิร์ฟเวอร์และเซิร์ฟเวอร์ NFS

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

sudo rsync -a --relative /var/spool/cron/crontabs .

แบ่งปัน NFS

sudo rsync -a --relative /etc/exports .

sudoers

sudo rsync -a --relative /etc/sudoers .

การกำหนดค่า apache

sudo rsync -a --relative /etc/apache2/apache2.conf .

autofs

sudo rsync -a --relative /etc/auto* .

fstab

sudo rsync -a --relative /etc/fstab .

เจ้าภาพ

sudo rsync -a --relative /etc/hosts .

แซมบ้า

sudo rsync -a --relative /etc/samba/smb.conf .

กฎอุปกรณ์ USB (udev)

sudo rsync -a --relative /etc/udev .

systemd

mlocate

sudo rsync -a --relative /etc/updatedb.conf .

ตัวเรียกใช้งาน Ubuntu ("เมนูเริ่ม") ไฟล์. ktop รวมถึง สิ่งที่กำหนดเองใด ๆ ที่คุณได้ตั้งค่า:

sudo rsync -a --relative /usr/share/applications .

dir ที่บ้านสามารถเก็บรักษาไว้หากคุณติดตั้ง Ubuntu


1

เพียงเตือนความจำหากคุณใช้ DejaDup (หรือสิ่งอื่นใดจริงๆ) นอกจากนี้ยังยกเว้นโฟลเดอร์ที่เก็บข้อมูลบนคลาวด์ (อาจเป็นที่บ้านของคุณ) เช่น Dropbox หากคุณจ่ายเงินสำหรับการจัดเก็บ s3 นี่อาจเป็นข้อผิดพลาดที่ไม่ดี


0

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

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


0

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

ฉันมีการสำรองข้อมูลทุกเช้าเวลา 4:00 น. หรือเมื่อใดก็ตามที่แล็ปท็อปดำเนินการต่อจากการระงับ มันถูกควบคุมผ่าน/etc/cron.dailyสคริปต์

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

หลังจากสองสามปีที่ผ่านมาฉันใช้โควต้า "ฟรี" 15 GB ของฉันดังนั้นจึงเขียนสคริปต์เพื่อรีไซเคิลการสำรองข้อมูลเป็น 180 วัน 78 สัปดาห์ 36 เดือนและสำรองข้อมูล 100 ปี

นี่คือสคริปต์สำรองข้อมูลรายวันของสิ่งที่สำคัญสำหรับฉัน:

#!/bin/bash

# NAME: daily-backup.sh
# PATH: /mnt/e/bin
# DESC: Backup scripts, documents and configuration files to .tar

# DATE: July 11, 2017. Modified July 7, 2019.

HomeDir="/home/USER_NAME"                    # Required for cron compatibility
EmailAddr="EMAIL_NAME@gmail.com"

# PARM: 1=backup file name. Extension .tar.gz automatically appended.

# NOTE: To include MBR (Master Boot Record) in backup create an image using:
#       sudo dd if=/dev/sda of="$HOME/.mbr.sav" bs=512 count=1

# NOTE: CLONE CURRENT INSTALLATION TO NEW MACHINE
#       =========================================

#       To restore use Live USB to install Ubuntu alongside Windows 10
#       Connect to network with password xxxxxxxxx

#       Install Google Chrome
#       (https://askubuntu.com/questions/510056/how-to-install-google-chrome):

#           wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub 
#               | sudo apt-key add
#           echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/
#               stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
#           sudo apt update
#           sudo apt install google-chrome-stable

#       Open gmail.com and download attachment `$1` which is usually called
#           Backup-yymmdd-DayOfWeekName.tar

#       Make missing home/bin directory which tar doesn't create automatically:
#           mkdir ~/bin

#       Restore the daily backup using:
#           sudo tar -xvf Backup-yymmdd-DayFfWeekName.tar -C /
#           yar -xvf Backup-yymmdd-DayFfWeekName.tar -C /

#       Patch /etc/default/grub with new machine parameters, ie for nvme use:
#           acpiphp.disable=1

#       Use `sudo apt install aptitude-common`
#       Clone packages using `aptitude-create-state-bundle` on Source
#       Copy state-bundle.tar file from Source to Target machine
#       Restore packages using `aptitude-run-state-bundle` on Target

#       Manually copy ~/Pictures, ~/Videos, etc. not in daily backup.

#       sudo update-grub        # NVMe suspend/resume acpiphp.disable=1
#       sudo update-initramfs   # to get plymouth sunrise splash screen

if [[ $# -ne 1 ]]; then
    echo 'One argument required for file name, e.g. "Backup-2017-10-21-Saturday"'
    echo '.tar will automatically be added as a file extension'
    exit 1
fi

Filename="$1.tar"

cd $HomeDir ||
    exit 1

dpkg --get-selections > .packages       # List of installed applications

tar -cvpf "$Filename" bin               # create .tar & add user scripts
tar -rvpf "$Filename" .config/autostart # autostart programs configuration
tar -rvpf "$Filename" /usr/local/bin    # add global root-based scripts
tar -rvpf "$Filename" /etc/cron*        # crontab, cron.d, cron.daily, etc
tar -rvpf "$Filename" /etc/system*      # systemd files: login.conf, etc.
tar -rvpf "$Filename" /lib/systemd/system-sleep
tar -rvpf "$Filename" /etc/rc.local     # Startup script: calls zaprestore.
tar -rvpf "$Filename" /etc/sudoers      # 120 minute sudo, stars in password
tar -rvpf "$Filename" /etc/environment  # PATH backup
tar -rvpf "$Filename" /etc/default/grub # bootstrap loader
#July 20, 2018 - /boot/grub takes 5MB+
#tar -rvpf "$Filename" /boot/grub        # Custom grub fonts and splash...
tar -rvpf  "$Filename" /usr/share/plymouth   # ... screen (plymouth)
#included above tar -rvpf "$Filename" /usr/share/plymouth/themes/earth-sunrise/
tar -rvpf "$Filename" /usr/share/grub/themes/Tuxkiller2/
tar -rvpf "$Filename" /etc/grub.d       # 00_header, etc. changes
tar -rvpf "$Filename" Desktop           # files and links on desktop
tar -rvpf "$Filename" Documents/*.od*   # Libre Office: *.ods, *.odt, etc.

# Trusted keys to install from third party PPAs
tar -rvpf "$Filename" /etc/apt/trusted.gpg
tar -rvpf "$Filename" /etc/apt/trusted.gpg.d

# Sources for repositories - 1) Main single file - 2) directory of files
tar -rvpf "$Filename" /etc/apt/sources.list
tar -rvpf "$Filename" /etc/apt/sources.list.d

# find all $HOME/.config files and add to .tar
find .* -maxdepth 0 -type f -exec tar -rvf "$Filename" {} +

# Nautilus custom scripts
tar -rvpf "$Filename" .local/share/nautilus/scripts

# /etc/udev rules
tar -rvpf "$Filename" /etc/udev/rules.d

# /etc/rc.local
tar -rvpf "$Filename" /etc/rc.local

# /etc/X11/xorg.conf.d
tar -rvpf "$Filename" /etc/X11/xorg.conf.d

# /mnt/e - shared WSL + Linux
tar -rvpf "$Filename" /mnt/e/bin
tar -rvpf "$Filename" /mnt/e/Documents

# ~/eyesome - Development version
tar -rvpf "$Filename" eyesome

# ~/gmail - Python and Bash scripts but NOT huge data files
tar -rvpf "$Filename" gmail/*.py
tar -rvpf "$Filename" gmail/*.sh
tar -rvpf "$Filename" gmail/go
tar -rvpf "$Filename" gmail/BackupSets
tar -rvpf "$Filename" gmail/BackupDays

echo "Complete file list with sizes..."
tar -tvf "$Filename" > BackupLog    # list filenames and sizes
chmod a+w BackupLog                 # give user delete access

echo "Compressing with gzip..."
gzip "$Filename"
Filename="$Filename.gz"

echo "Emailing: $EmailAddr"

# From: https://internetlifeforum.com/gmail/2251-gmail-some-file-types-blocked-fix-how-go-around/
# cat archive.tar.gz | base64 > file
# then i sent the file via email:
# echo "Base64 encoded file" | mutt -a file -s subject -- mymail@gmail.com
# then mail was delivered properly! Then when one need to get readable archive 
# again, he need to decode it by base64. In my case i do it via linux command line:
# cat file | base64 -d > decodedarchive.tar.gz

Filename64="$Filename.64"
cat "$Filename" | base64 > "$Filename64"
mail -a "$Filename64" -s "$Filename64" "$EmailAddr" < BackupLog

ls -la "$Filename" "$Filename64"
rm     "$Filename" "$Filename64"

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