बैकअप में शामिल करने के लिए कौन सा फ़ोल्डर?


28

मैं उबंटू में काफी नया हूं और एक बैकअप बनाना चाहता हूं। मुझे वास्तव में यकीन नहीं है कि क्या फ़ाइलों और फ़ोल्डरों को शामिल करना है ताकि अगर मैं अपने सिस्टम को पुनर्स्थापित करता हूं तो यह वैसा ही होगा जैसा अब है। मुझे इसका कहीं भी अच्छा विवरण नहीं मिल रहा है। उम्मीद है कि कोई मेरी मदद कर सकता है। क्या यह सब कुछ बैकअप करना संभव है क्योंकि यह अब सिस्टम के पुनर्स्थापना की स्थिति में है ताकि मुझे प्रोग्राम और सेटिंग्स को फिर से स्थापित न करना पड़े?


हाँ, मैं यह भी जानना चाहता हूँ कि पूरी ड्राइव का बैकअप लिए बिना महत्वपूर्ण फाइलें क्या हैं। Crontabs (रूट और उपयोगकर्ता), Exportfs आदि
श्रीधर सरनोबत

जवाबों:


25

वर्तमान में मेरे बैकअप सेट हैं

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

ध्यान दें कि यह एक सर्वर के लिए है, इसलिए / इत्यादि जैसी चीजों का बैकअप लेना मेरी सेवाओं के लिए मेरे सभी कॉन्फ़िगरेशन को बचाता है, मेरे पास वेब सर्वर / srv (हालांकि यदि आपके पास इन / var / www है , तो वे अभी भी इस बैकअप सेट में होंगे) , मेरे पास / usr / स्थानीय इत्यादि में विभिन्न स्क्रिप्ट और चीजें हैं , जो / home / myusername के बजाय / घर का बैकअप ले रही हैं ताकि मैं सभी उपयोगकर्ताओं को संरक्षित कर सकूं । यदि आप अपने उपयोगकर्ता डेटा को रखना चाहते हैं, तो आपको केवल अपनी होम निर्देशिका की आवश्यकता है।


आप क्यों शामिल हैं / रूट?
मोहम्मद जोरेद

2
यह रूट यूज़र की होम डायरेक्टरी है, मैं बैकअप आदि के लिए वहां कुछ सीसडमिन स्क्रिप्ट्स रखता हूँ, हालाँकि मैंने इनमें से अधिकांश को स्थानांतरित कर दिया है/usr/local/sbin/
thomasrutter

क्या .cacheप्रत्येक उपयोगकर्ता के घर निर्देशिका ( ~/.cache) में फ़ोल्डर को शामिल करने की आवश्यकता है , या क्या हम इसे भी छोड़ सकते हैं? यह हजारों फाइलें और कई गीगाबाइट डेटा हो सकता है। मेरी समझ यह है कि अगर हम इसे शामिल नहीं करते हैं तो इसका मतलब यह है कि अनुप्रयोगों को अगली बार चलाने पर अस्थायी, कैश्ड फ़ाइलों को फिर से उत्पन्न करना होगा, जो रन टाइम और स्टार्टअप समय बढ़ाता है लेकिन हानिरहित है, है ना?
गेब्रियल स्टेपल्स

1
~/.cacheमुझे छोड़कर ठीक लगता है। मैं इसे खुद से बाहर नहीं करता हूं, लेकिन यदि आप डेटा ट्रांसफर / सिंक टाइम में कटौती करना चाहते हैं, तो यह एक विकल्प हो सकता है।
थोमसट्रेटर

1
@GabrielStaples मैं उपयोग नहीं करता, /optलेकिन यदि आप इसका उपयोग करते हैं, तो आप इसे अपने बैकअप में शामिल कर सकते हैं। /optउपयोगकर्ता द्वारा इसे छोड़ने पर डिस्ट्रोस द्वारा अप्रयुक्त होने की प्रवृत्ति होती है, लेकिन एप्लिकेशन विक्रेता जो इस पर इंस्टॉल किए गए अपने तृतीय-पक्ष ऐप के साथ एक लिनक्स सिस्टम प्रदान करते हैं /optया यदि आप अपने स्वयं के सॉफ़्टवेयर का विकास करते हैं, तो इसके /optबजाय आपके पास हो सकता है/usr/local
thomasrats

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@ बूट ubuntu पुनर्स्थापना पर फिर से बनाया हो (मुझे यकीन है कि जो नहीं कर रहा हूँ)।]

मेरे सिस्टम /rootपर खाली है ( sudo -sइसे देखने के लिए रूट उपयोगकर्ता के रूप में एक शेल खोलने का उपयोग करें ... exitनिरीक्षण करने के तुरंत बाद सावधान रहें /root।)

/snapखाली भी है। शायद यह एक आरोह बिंदु है।

/varइसमें वैरिएबल डेटा जैसे सिस्टम लॉगिंग फाइलें, मेल और प्रिंटर स्पूल डायरेक्टरी और ट्रांसिएंट और अस्थायी फाइलें हैं। "अब मैं इसे वापस कर रहा हूं, केवल / var / log को छोड़कर। Ref: http://www.tldp.org/LDP/Linux- फाइलसिस्टम-पदानुक्रम / html / var.html )

/bin, /boot, /lib, /lib64, और /sbinशायद Ubuntu के एक पुनर्स्थापना के माध्यम से पुनः लोड हो जाएगी जब तक आप प्रणाली विकास कार्य या ऐसा ही कुछ कर रहे हैं। आप या तो उन्हें वापस कर सकते हैं या उन्हें पुनर्प्राप्त करने के लिए एक ताज़ा इंस्टॉल पर भरोसा कर सकते हैं।

/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


सोच की एक संबंधित पंक्ति है: कहते हैं कि आपने सिर्फ एक नया उबंटू स्थापित किया है। आपको बैकअप लेने की क्या आवश्यकता होगी? उत्तर: कुछ नहीं। आपने अभी तक कुछ भी नहीं बदला है, इसलिए आप केवल उबंटू को पुनर्स्थापित कर सकते हैं। यह पुनर्स्थापित करता है / बिन, / आदि, / जड़, / usr, आदि।

तो एकमात्र कारण जिसका आप बैकअप / बिन करना चाहते हैं, क्योंकि आपने इसे बदल दिया है या इसमें जोड़ दिया है। इसलिए बैकअप लेने का एक हिस्सा यह समझ रहा है कि यह कहाँ और कब बनाया गया है और संशोधित किया गया है। बस इतना पता है कि हममें से बाकी लोग भी इससे जूझते हैं।


***** और, यद्यपि आपने नहीं पूछा, कोई पूर्ण डिस्क या विभाजन चित्र बना सकता है। ये बैकअप करने और पुनर्स्थापित करने में बहुत समय लेते हैं और आपके सिस्टम को नीचे छोड़ सकते हैं जबकि यह कार्य आगे बढ़ रहा है। और यह है कि मैंने Acronis का उपयोग करके अपने विंडोज सिस्टम का बैकअप कैसे लिया। एक चीज जो वे आपको प्रदान करते हैं वह एक विभाजन मानचित्र है, और गैर-लिनक्स विभाजन से चित्र। इससे पहले कि मैं विभाजन को पुनर्गठित करूं, और इससे पहले कि मैं अपने बैकअप पुनर्स्थापना कार्यों का परीक्षण करूं।


(मैं सुझाव के लिए बहुत खुला हूं कि मैं इसे बेहतर कैसे बना सकता हूं।)


यह बहुत अच्छा है जब आप कॉन्फ़िगरेशन पर ध्यान केंद्रित कर रहे हैं और बायनेरिज़ की आवश्यकता नहीं है, जैसे आपने कहा कि उन्हें फिर से स्थापित किया जा सकता है और यह निर्यात करने के लिए बहुत हल्का है और askubuntu.com/a/55906/104223
CTS_3

5

यदि मैं अपने डेस्कटॉप सिस्टम को पुनर्स्थापित करता हूं, तो मैं बैकअप लेता हूं

  • /etc
  • /var, मैं कुछ उप-फ़ोल्डर्स को बाहर करने के लिए बहुत आलसी हूं
  • /opt

/homeएक अलग विभाजन पर है और हर दिन एक बैकअप है ।

पुनर्स्थापना के बाद, मैं अपने बैकअप से भागों को पुनर्स्थापित करता हूं, जिसकी मुझे वास्तव में आवश्यकता है।

इस रणनीति के साथ, मेरे सभी कॉन्फ़िगरेशन, स्थानीय मेल और क्रॉस्टैब कॉन्फ़िगरेशन सुरक्षित हैं और मुझे केवल अपने आवश्यक एप्लिकेशन को फिर से स्थापित करना है।

मेरी निजी स्क्रिप्ट मेरे होम फ़ोल्डर (दैनिक बैकअप, याद रखें?) में सहेजी जाती हैं, इसलिए मैं उपयोग नहीं करता हूं /usr/local


1
क्या यह काम करेगा अगर मैं रूट बैकअप लेता हूं, तो वह सब कुछ है ?: /।
निलंबित

यह एक क्लोन की तरह होगा जो मैं अभी उपयोग कर रहा हूं।
निलंबित

इसमें हमें क्या /optचाहिए? यानी: यह वापस क्यों?
गेब्रियल स्टेपल्स

3

ज्यादातर लोग बस अपने घर निर्देशिका का बैकअप लेते हैं /home/$USER/:। यदि आप कॉन्फ़िगरेशन फ़ाइलों और सेटिंग्स का बैकअप लेना चाहते हैं, तो वे आपके होम डायरेक्टरी में फ़ोल्डर्स और फ़ाइलों में संग्रहीत होते हैं जो एक से शुरू होते हैं। (डॉट)। आपके द्वारा उपयोग किए जाने वाले पैकेजों (और PPA) की एक सूची बनाएं और अपने सभी पैकेजों को फिर से स्थापित करना आसान होगा, जिनकी आपको आवश्यकता है। या, इस टिप्पणी में वर्णित कमांड का उपयोग करें ।

Deja Dup Backup एक बेहतरीन टूल है जो उबंटू के डिफॉल्ट के रूप में आता है। अन्य विकल्पों में कमांड लाइन (rsync, rsnapshot, rdiff-backup, आदि) शामिल हैं।

अंत में, एक छवि के रूप में संपूर्ण डिस्क का बैकअप लेने के लिए, क्लोनज़िला देखें


2
इसके अलावा, जो उत्तर psny से जुड़ा हुआ है, इसके अलावा, यह संपूर्ण / etc / निर्देशिका का बैक अप बनाने के लिए चोट नहीं पहुंचाएगा जो सिस्टम सेटिंग्स को संग्रहीत करता है। यदि आपने वहां कुछ परिवर्तन किए हैं, तो उन परिवर्तनों को प्राप्त करने के लिए एक संग्रह होना उपयोगी होगा।
Marcin Kaminski

2
अगर आपके पास कोई crontabs सेटअप है, तो बैकअप /var/spool/cronभी लें।
इयान डन

3

यहां फाइलों की एक सूची एकत्र करते हैं। मैंने इस पोस्ट को "समुदाय विकि" बनाया है।

बेशक, यह एक व्यक्ति से दूसरे व्यक्ति में भिन्न होता है। मेरा मुख्य रूप से एक वेब सर्वर और एनएफएस सर्वर के रूप में उपयोग किया जाता है।

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

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

एनएफएस के शेयर

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

sudoers

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

अपाचे विन्यास

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 .

उबंटू लांचर ("स्टार्ट मेनू") .desktop फाइलें, incl। आपके द्वारा स्थापित कोई भी कस्टम:

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

यदि आप एक ubuntu पुनर्स्थापित करते हैं, तो घर की डिर को संरक्षित किया जा सकता है


1

यदि आप DejaDup (या वास्तव में कुछ भी) का उपयोग कर रहे हैं तो बस एक अनुस्मारक, ड्रॉपबॉक्स जैसे किसी भी क्लाउड स्टोरेज फ़ोल्डर्स (आपके घर में होने की संभावना) को बाहर करें। यदि आप s3 संग्रहण के लिए भुगतान कर रहे हैं तो यह एक गलत गलती हो सकती है।


0

Deja Dup बैकअप का उपयोग करें। यह डिफ़ॉल्ट रूप से प्रदान किया जाता है। सेटिंग्स पर जाएं और केवल रूट फ़ोल्डर ( /) को "फ़ोल्डर में शामिल करने के लिए" और मीडिया फ़ोल्डर /mediaको "फ़ोल्डर में अनदेखा" करने के लिए जोड़ें।

इस वजह से, आपके अन्य ड्राइव को छोड़कर सिस्टम के नुकसान (दुर्लभ) के मामले में आपके सभी कार्यक्रमों का बैकअप लिया जाएगा जो सामान्य रूप से अप्रभावित रहते हैं।


0

मैं बैकअप लेता हूं जो मेरे लिए महत्वपूर्ण है जिसे शिथिल रूप से परिभाषित किया जा सकता है क्योंकि मेरी बौद्धिक संपदा और प्रयासों ने उबंटू को पूरी तरह से काम करने के लिए खर्च किया।

मेरे पास हर सुबह 4:00 बजे बैकअप होता है या जब भी लैपटॉप सस्पेंड होता है। इसे /etc/cron.dailyस्क्रिप्ट के माध्यम से नियंत्रित किया जाता है ।

आग या बाढ़ के मामले में सबसे अच्छा प्रकार का बैकअप ऑफ-साइट है जहां कंप्यूटर बैठता है इसलिए मैं मुफ्त 15 जीबी gmail.com खाते का लाभ उठाता हूं और वहां एक संपीड़ित दैनिक बैकअप भेजता हूं।

कुछ वर्षों के बाद मैंने अपना 15 जीबी "फ्री" कोटा मारा, इसलिए 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.