Я довольно новичок в Ubuntu и хочу создать резервную копию. Я действительно не уверен, какие файлы и папки нужно включить, чтобы, если я восстановлю свою систему, все было так, как сейчас. Я не могу найти хорошие детали этого нигде. Надеюсь, кто-нибудь сможет мне помочь с этим. Можно ли сделать резервную копию всего, как сейчас, поэтому в случае восстановления системы мне не нужно переустанавливать программы и настройки?
Мои резервные наборы в настоящее время содержат
/var (except /var/run, /var/cache, /var/tmp)
/srv
/etc
/root
/home
/usr (/usr/local only, nothing else)
Обратите внимание, что это для сервера, поэтому резервное копирование таких вещей, как / etc, сохраняет всю мою конфигурацию для моих служб, у меня есть веб-серверы в / srv (хотя, если вы они должны быть в / var / www, они все еще будут в этом наборе резервных копий), у меня есть различные сценарии и вещи, настроенные в / usr / local, и т. д. Резервное копирование / home вместо / home / myusername предназначено для сохранения все пользователи. Если все, что вы хотите сохранить, это ваши пользовательские данные, вам нужен только ваш домашний каталог.
Большинство людей просто делают резервную копию своего домашнего каталога: /home/$USER/
. Если вы хотите сделать резервную копию файлов конфигурации и настроек, они хранятся в папках и файлах в вашем домашнем каталоге, которые начинаются с. (Точка). Составьте список пакетов, которые вы используете (и PPA), и вам будет легко переустановить все ваши пакеты, если вам нужно. Или используйте команду, описанную в в этом комментарии .
Deja Dup Backup - отличный инструмент, который по умолчанию используется в Ubuntu. Другие параметры включают в себя командную строку (rsync, rsnapshot, rdiff-backup и т. Д.).
Наконец, чтобы сделать резервную копию всего диска в виде образа, посмотрите clonezilla .
Если я переустанавливаю свою настольную систему, я копирую
/etc
/var
, Я слишком ленив для исключения некоторых подпапок/opt
/home
находится на отдельном разделе и делали резервное копирование каждый день.
После переустанавливания я восстанавливаю части от своего резервного копирования, в котором я действительно нуждаюсь.
С этой стратегией все мои конфигурации, местные почты и crontab конфигурации безопасны, и я должен переустановить свои необходимые приложения только.
Мои персональные сценарии сохраняются в моей домашней папке (ежедневное резервное копирование, помните?), поэтому я не использую /usr/local
.
Просто напоминание, если вы используете DejaDup (или что-то еще на самом деле), также исключите любые папки облачного хранилища (вероятно, у вас дома), такие как Dropbox. Если вы платите за хранилище s3, это может быть плохой ошибкой.
Давайте соберем список файлов здесь. Я сделал этот пост "сообщество вики".
Конечно, это зависит от человека к человеку. Мой используется в основном как веб-сервер и NFS-сервер.
mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER
sudo rsync -a --relative /var/spool/cron/crontabs .
sudo rsync -a --relative /etc/exports .
sudo rsync -a --relative /etc/sudoers .
sudo rsync -a --relative /etc/apache2/apache2.conf .
sudo rsync -a --relative /etc/auto* .
sudo rsync -a --relative /etc/fstab .
sudo rsync -a --relative /etc/hosts .
sudo rsync -a --relative /etc/samba/smb.conf .
Необходимое резервное копирование зависит от конкретной системы *.
Так что это займет немного работы с вашей стороны, чтобы разобраться. Начните с выяснения того, что не нужно , необходимо создать резервную копию. Сначала посмотрите на ваш корневой каталог, а затем работайте в обратном направлении.
Например, 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-Filesystem-Hierarchy / 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. Теперь я делаю это до того, как реорганизовать разделы и до того, как протестирую свои функции восстановления из резервной копии.
(я очень открыт для предложений относительно того, как я мог бы сделать это лучше.)
Используйте резервное копирование Deja Dup. Это предусмотрено по умолчанию. Перейдите в настройки и оставьте только корневую папку (/
) в качестве «папок для включения» и добавьте папку мультимедиа (/media
) в «папках для игнорирования».
Из-за этого все ваши программы будут сохранены в случае повреждения системы (редко), за исключением других ваших дисков, которые обычно остаются без изменений.
Я копирую то, что важно для меня, который может свободно быть определен как моя интеллектуальная собственность плюс усилия, потраченные, настроив 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
Обычно я создаю резервную копию / home
, исключая .cache
и .local / Trash
.
Я также вручную очищаю некоторые ненужные файлы заранее с помощью baobab и du -h --max-depth = 1
.