Які папки потрібно включити в резервну копію?


28

Я зовсім новачок у Ubuntu і хочу створити резервну копію. Я дійсно не впевнений, які файли та папки включати, щоб, якщо я відновив свою систему, він буде таким, як зараз. Я не можу ніде знайти хороших деталей цього. Сподіваюся, хтось міг би мені допомогти у цьому. Чи можливо створити резервну копію всього, як зараз, так у випадку відновлення системи мені не доведеться перевстановлювати програми та налаштування?


Так, я теж хочу знати, які важливі файли є без резервного копіювання всього диска. Crontabs (root та user), exportfs тощо
Шрідар Шарнобат

Відповіді:


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 - це те, що я можу зберегти всіх користувачів. Якщо ви хочете зберегти лише ваші дані користувачів, вам потрібен лише ваш домашній каталог.


Чому ви включаєте / root?
Мохаммед Жораїд

2
Це домашній каталог кореневого користувача, я зберігаю там кілька скриптів sysadmin для резервного копіювання тощо. Хоча я перемістив більшість із них до/usr/local/sbin/
thomasrutter

Чи є необхідність включати .cacheпапку в домашній каталог кожного користувача ( ~/.cache), чи ми можемо також пропустити це? Це може бути десятки тисяч файлів і багато гігабайт даних. Я розумію, що якщо ми не включимо його, це просто означає, що додатки повинні повторно генерувати тимчасові, кешовані файли наступного разу, коли вони запускаються, що збільшує час виконання та час запуску, але це нешкідливо, правда?
Габріель Степлес

1
Виключення ~/.cacheзвуків нормально для мене. Я сам не виключаю цього, але якщо ви хочете скоротити час передачі / синхронізації даних, це може бути варіантом.
thomasrutter

1
@GabrielStaples я не використовую, /optале якщо ви все-таки використовуєте його, ви можете включити його до своїх резервних копій. /optзазвичай не використовуються дистрибутивом, залишаючи це користувачеві, але постачальники додатків, які надають системі Linux встановлене на ній стороннє додаток, можуть використовувати, /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@ отримати відтвореної при завантаженні Ubuntu Перевстановлення (я не впевнений , який).]

У моїй системі /rootпорожньо (використовуйте, sudo -sщоб відкрити оболонку як користувач root, щоб переглянути її ... будьте обережні, 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


Пов'язаний напрямок мислення: Скажіть, ви щойно встановили свіжу Ubuntu. Що потрібно для резервного копіювання? Відповідь: нічого. Ви ще нічого не змінили, тому можете просто перевстановити Ubuntu. Він відновлює / bin, / etc, / root, / usr тощо.

Тож єдиною причиною, яку ви можете захотіти створити для резервного копіювання / бінінгу, є те, що ви її змінили або додали. Тож частиною резервного копіювання є розуміння того, що де і коли воно створюється та змінюється. Тільки знайте, що решта з нас теж борються з цим.


***** І хоча ви цього не запитували, можна зробити зображення з повного диска чи розділу. Вони потребують багато часу для резервного копіювання та відновлення, і вони можуть залишити вашу систему в режимі роботи, поки ця робота триває. І саме так я використовував резервну копію своїх систем Windows за допомогою Acronis. Єдине, що вони вам надають, - це карта розділів та зображення з нелінукс-розділів. Тепер я роблю це перед тим, як реорганізувати розділи та перед тим, як перевірити свої функції відновлення резервного копіювання.


(Я дуже відкритий до пропозицій щодо того, як я міг би зробити це кращим.)


Це чудово, коли ви зосереджені на конфігураціях і не потрібні бінарні файли, як ви сказали, що їх можна буде знову встановити, і це набагато легше експортувати, а не перевстановлювати askubuntu.com/a/55906/104223
CTS_AE

5

Якщо я перевстановлюю систему на робочому столі, я створюю резервну копію

  • /etc
  • /var, Я лінивий, щоб виключити деякі підпапки
  • /opt

/homeзнаходиться на окремому розділі і має резервну копію, яку роблять щодня .

Після перевстановлення я відновлюю деталі з резервної копії, які мені справді потрібні.

З цією стратегією всі мої конфігурації, локальна пошта та конфігурації crontab є безпечними, і я повинен перевстановити лише потрібні програми.

Мої особисті сценарії зберігаються в моїй домашній папці (щоденне резервне копіювання, пам'ятаєте?), Тому я не використовую /usr/local.


1
Чи спрацює, якщо я резервну копію root, це все ?: ./
Призупинено

Це було б як клон того, що я зараз використовую.
Призупинено

Що в /optтому нам потрібно? тобто: чому це резервне копіювання?
Габріель Степлес

3

Більшість людей просто резервного копіювання їх домашній каталог: /home/$USER/. Якщо ви хочете створити резервну копію файлів конфігурації та налаштувань, вони зберігаються у папках та файлах у вашому домашньому каталозі, які починаються з а. (крапка). Складіть список пакунків, які ви використовуєте (та PPA), і буде легко перевстановити всі ваші пакунки, якщо вам потрібно. Або скористайтеся командою, описаною в цьому коментарі .

Deja Dup Backup - чудовий інструмент, який поставляється за замовчуванням на Ubuntu. Інші параметри включають командний рядок (rsync, rsnapshot, rdiff-резервне копіювання тощо).

Нарешті, щоб створити резервну копію всього диску у вигляді зображення, перегляньте клонезилу .


2
Крім того, на додаток, до якого пов’язана відповідь psny, не завадить створити резервну копію всього / etc / каталогу, який зберігає налаштування системи. Якщо ви внесли якісь зміни там, було б корисно мати архів, щоб отримати ці зміни.
Марцін Камінський

2
Якщо у вас є налаштування crontabs, тоді /var/spool/cronтакож створюйте резервну копію .
Іван Данн

3

Зберемо тут список файлів. Я зробив цю публікацію "Вікі спільноти".

Звичайно, вона варіюється від людини до людини. Шахта використовується в основному як веб-сервер і сервер NFS.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

кронтаби

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

Акції NFS

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

судори

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

apache config

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

авт

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 .

системний

mlocate

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

Файли запуску Ubuntu ("Меню Пуск") .desktop файли, в т.ч. будь-які налаштовані вами налаштування:

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

домашній dir можна зберегти, якщо ви перевстановите ubuntu


1

Просто нагадування, якщо ви використовуєте DejaDup (або що-небудь ще), також виключайте будь-які папки для зберігання хмар (можливо, у вашому домі), наприклад, Dropbox. Якщо ви платите за зберігання s3, це може бути помилковою помилкою.


0

Використовуйте резервну копію Deja Dup. Він надається за замовчуванням. Перейдіть до налаштувань і збережіть лише кореневу папку ( /) як "папки, які потрібно включити" та додайте медіа-папку ( /media) у "папки, щоб ігнорувати".

Через це всі ваші програми будуть резервні копії у разі пошкодження системи (рідко), крім інших накопичувачів, які, як правило, не впливають.


0

Я створюю резервну копію того, що для мене важливо, що можна вільно визначити як мою інтелектуальну власність, а також зусилля, витрачені на налаштування Ubuntu для ідеальної роботи (для мене).

У мене резервне копіювання працює щоранку о 4:00 ранку або коли комп’ютер поновлюється з призупинення. Це контролюється за допомогою /etc/cron.dailyсценарію.

Найкращий варіант резервного копіювання - це поза сайтом у випадку пожежі чи повені, де сидить комп'ютер, тому я скористаюся безкоштовним обліковим записом gmail.com 15 Гб і надсилаю туди щоденне резервування стислих даних.

Через пару років я потрапив на свою безкоштовну квоту на 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
#       (/ubuntu/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 та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.