Какие папки включить в резервную копию?

28

Я довольно новичок в Ubuntu и хочу создать резервную копию. Я действительно не уверен, какие файлы и папки нужно включить, чтобы, если я восстановлю свою систему, все было так, как сейчас. Я не могу найти хорошие детали этого нигде. Надеюсь, кто-нибудь сможет мне помочь с этим. Возможно ли сделать резервную копию всего, как сейчас, поэтому в случае восстановления системы мне не нужно переустанавливать программы и настройки?

Джейсон
источник
Да, я тоже хочу знать, что это за важные файлы, не создавая резервную копию всего диска. Crontabs (root и пользователь), 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 позволяет сохранить всех пользователей. Если все, что вы хотите сохранить, это ваши пользовательские данные, вам нужен только ваш домашний каталог.

thomasrutter
источник
Почему вы включаете / root?
Мохаммед Джорайд
2
Это домашний каталог пользователя root, я держу там несколько сценариев sysadmin для резервного копирования и т. Д. Хотя большинство из них я перенес в/usr/local/sbin/
thomasrutter
Нужно ли включать .cacheпапку в домашнюю директорию каждого пользователя ( ~/.cache), или мы можем ее тоже опустить? Это могут быть десятки тысяч файлов и много гигабайт данных. Насколько я понимаю, если мы не включим его, это просто означает, что приложения должны повторно генерировать временные кэшированные файлы при следующем запуске, что увеличивает время выполнения и время запуска, но безвредно, верно?
Габриэль Стейплс
1
Исключая ~/.cacheзвуки нормально для меня. Я не исключаю это сам, но если вы хотите сократить время передачи / синхронизации данных, это может быть вариантом.
Томасруттер
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 и т. Д.

Таким образом, единственная причина, по которой вы можете сделать резервную копию / bin, заключается в том, что вы изменили ее или добавили в нее. Таким образом, часть резервного копирования заключается в понимании того, где и когда оно создано и изменено. Просто знайте, что остальные из нас тоже борются с этим.


***** И, хотя вы не спрашивали, можно сделать полные образы дисков или разделов. Это занимает много времени для резервного копирования и восстановления и может привести к остановке системы во время этой работы. И именно так я делал резервные копии своих систем Windows с помощью Acronis. Единственное, что они вам предоставляют, - это карта разделов и изображения с разделов, отличных от Linux. Теперь я делаю это до реорганизации разделов и до тестирования функций восстановления из резервной копии.


(Я очень открыт для предложений относительно того, как я мог бы сделать это лучше.)

Эллиптический вид
источник
Это замечательно, когда вы сосредоточены на конфигурациях и не нуждаетесь в двоичных файлах, как вы сказали, что их можно установить снова, и это гораздо легче экспортировать, чем переустанавливать askubuntu.com/a/55906/104223
CTS_AE
5

Если я переустановлю свою настольную систему, я сделаю резервную копию

  • /etc
  • /varМне лень исключать некоторые подпапки
  • /opt

/homeнаходится на отдельном разделе и каждый день делает резервную копию .

После переустановки я восстанавливаю части из своей резервной копии, которая мне действительно нужна.

С этой стратегией все мои конфигурации, локальные почтовые сообщения и конфигурации crontab безопасны, и я должен переустанавливать только мои необходимые приложения.

Мои личные сценарии сохраняются в моей домашней папке (ежедневное резервное копирование, помните?), Поэтому я не использую /usr/local.

AB
источник
1
Будет ли это работать, если я сделаю резервную копию root, это все ?:.
Приостановлено
Это было бы похоже на клон того, что я сейчас использую.
Приостановлено
Что в /optэтом нам нужно? то есть: зачем это делать?
Габриэль Стейплс
3

Большинство людей просто резервного копирования их домашний каталог: /home/$USER/. Если вы хотите сделать резервную копию файлов конфигурации и настроек, они хранятся в папках и файлах в вашем домашнем каталоге, которые начинаются с. (точка). Составьте список пакетов, которые вы используете (и PPA), и вам будет легко переустановить все ваши пакеты, если вам нужно. Или используйте команду, описанную в этом комментарии .

Deja Dup Backup - отличный инструмент, который поставляется по умолчанию в Ubuntu. Другие параметры включают в себя командную строку (rsync, rsnapshot, rdiff-backup и т. Д.).

Наконец, чтобы сделать резервную копию всего диска в виде образа, посмотрите clonezilla .

philshem
источник
2
Кроме того, в дополнение к тому, с чем связан psny ответ, не мешало бы создать резервную копию всего каталога / etc /, в котором хранятся общесистемные настройки. Если вы внесли туда некоторые изменения, было бы полезно иметь архив, чтобы получить эти изменения.
Марцин Камински
2
Если у вас есть какие-либо настройки crontabs, то сделайте резервную копию /var/spool/cronтоже.
Ян Данн
3

Давайте соберем список файлов здесь. Я сделал этот пост "сообщество вики".

Конечно, это варьируется от человека к человеку. Мой используется в основном в качестве веб-сервера и 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 Launcher («Пуск Меню») .desktop файлы, в т.ч. любые настроенные вами:

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

home dir можно сохранить, если вы переустановите Ubuntu

Шридхар Сарнобат
источник
1

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

kdford
источник
0

Используйте Deja Dup Backup. Это предусмотрено по умолчанию. Зайдите в настройки и оставьте только корневую папку ( /) в качестве «папок для включения» и добавьте медиа-папку ( /media) в «папках для игнорирования».

Из-за этого все ваши программы будут сохранены в случае повреждения системы (редко), кроме ваших других дисков, которые обычно остаются без изменений.

VedVals
источник
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
#       (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
WinEunuuchs2Unix
источник