Показать статистику
0 голосов
от (1.7тыс. баллов)
Подскажите универсальные утилиты для восстановления любой Linux OS
1.6тыс. просмотров 1 ответов

1 Ответ

0 голосов
от (26.4тыс. баллов)

CYA - утилита для создания снимков и восстановления системы для Linux

Это бесплатная утилита для создания снимков и восстановления системы с открытым исходным кодом для любых Unix-подобных операционных систем, в которых используется оболочка BASH. Она переносима и поддерживает многие популярные файловые системы, такие как EXT2 / 3/4, XFS, UFS, GPFS, reiserFS, JFS, BtrFS, ZFS и т. д.

 Обратите внимание, что CYA не будет создавать резервные копии реальных пользовательских данных . Это только резервное копирование и восстановление самой операционной системы. Это на самом деле утилита восстановления системы.

По умолчанию она создает резервную копию всех каталогов ключей, таких как /bin, /lib, /usr, /var и некоторых других. Однако вы можете определить свои собственные каталоги и путь к файлам для включения в резервную копию, поэтому CYA также подберет их. Кроме того, можно определить некоторые каталоги / файлы, чтобы пропустить из резервной копии. Например, вы можете пропустить /var/logs/, если вы не регистрируете файлы. 

Утилита на самом деле использует метод резервного копирования Rsync под капотом. Тем не менее, она немного проще, чем Rsync, при создании скользящих резервных копий.

Другой примечательной особенностью является то, что мы можем сгенерировать собственный сценарий восстановления, чтобы автоматизировать монтирование вашего системного раздела (ов) при восстановлении с живого CD, USB или сетевого образа. 

В двух словах, CYA может помочь вам восстановить вашу систему до прежнего состояния, когда она выйдет из строя из-за обновления программного обеспечения, изменений конфигурации, вторжений / взломов и прочего.

Установка CYA

Установка CYA проста. Все, что вам нужно сделать, это загрузить ее бинарный файл и поместить его в системный путь.

$ git clone https://github.com/cleverwise/cya.git

Это приведет к клонированию последней версии CYA в каталог под названием CYA в вашем текущем рабочем каталоге.

Затем скопируйте ее бинарный файл  куда хотите.

$ sudo cp cya/cya /usr/local/bin/

CYA был установлен! Теперь давайте продолжим создавать снимки.

Создание Snapshots

Перед созданием любых резервных копий создайте сценарий восстановления с помощью команды:

$ cya script

image

Приведенная выше команда создаст каталог с именем “/home/cya/” и сохранит в нем файл recovery.sh.

$ ls /home/cya/
cya cya.conf LAST_RUN points recovery.sh

Сохраните полученный файл recovery.sh на USB-накопителе, который мы будем использовать позже при восстановлении резервных копий. Этот скрипт поможет вам настроить изолированную среду и смонтировать диски при откате системы.

Теперь давайте создадим снимки.

Для создания стандартной скользящей резервной копии выполните:

$ cya save

Приведенная выше команда сохранит три резервных копии перед перезаписью.

Пример вывода:

image

Вы можете просмотреть содержимое только что созданного снимка в /home/cya/points /location

$ ls /home/cya/points/1/

bin cya-date initrd.img lib opt sbin usr vmlinuz

boot etc initrd.img.old lib64 root snap var vmlinuz.old

Чтобы создать резервную копию с пользовательским именем, которое не будет перезаписано, выполните:

$ cya keep name BACKUP_NAME

Замените BACKUP_NAME своим именем.

Чтобы создать резервную копию с пользовательским именем, которое будет перезаписано, выполните:

$ cya keep name BACKUP_NAME overwrite

Чтобы создать резервную копию и заархивировать ее, запустите:

$ cya keep name BACKUP_NAME archive

Эта команда будет хранить резервные копии в папке /home/cya/archives.

По умолчанию CYA будет сохранять свою конфигурацию в каталоге /home/cya/, а снимки с пользовательским именем будут храниться в папке /home/cya/points/BACKUP_NAME . Мы можем изменить эти настройки, отредактировав файл конфигурации CYA, хранящийся в /home/cya/cya.conf .

Как я уже сказал, CYA не будет создавать резервные копии пользовательских данных по умолчанию . Это будет только резервное копирование важных системных файлов. 

Однако вы можете включить свои собственные каталоги или файлы вместе с системными файлами. 

Например, если вы хотите добавить каталог с именем /home/sk/Downloads в резервную копию, отредактируйте файл /home/cya/cya.conf:

$ vi /home/cya/cya.conf

Определите путь к данным каталога, который вы хотите включить в резервную копию, как показано ниже.

MYDATA_mybackup="/home/sk/Downloads/ /mnt/backup/sk/"

Пожалуйста, помните, что каталоги источника и назначения должны заканчиваться косой чертой. В соответствии с приведенной выше конфигурацией, CYA скопирует все содержимое каталога /home/sk/Downloads/ и сохранит его в каталоге /mnt/backup/sk/ (если вы уже создали этот каталог). Здесь mybackup - это имя профиля. Нажмите ESC и введите :wq, чтобы сохранить и закрыть файл.

Теперь давайте сделаем резервную копию содержимого каталога /home/sk/Downloads/. Для этого вам необходимо ввести имя профиля (т.е. mybackup в моем случае) с помощью команды cya mydata, как показано ниже:

$ cya mydata mybackup

Точно так же вы можете включить несколько пользовательских данных с разными именами профиля. Все имена профилей должны быть уникальными.

Как исключить каталоги

Иногда вы можете не захотеть делать резервные копии всех системных файлов. Возможно, вы захотите исключить некоторые неважные, такие как файлы журналов. Например, если вы не хотите включать  каталоги / var / tmp / и / var / logs / , добавьте следующее в файл /home/cya/cya.conf .

EXCLUDE_/var/=”tmp/ logs/”

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

Как добавить конкретные файлы в резервную копию

Вместо создания резервной копии всего каталога, вы можете включить определенные файлы из каталога. Для этого добавьте путь к вашим файлам один за другим в файле /home/cya/cya.conf .

BACKUP_FILES="/home/sk/Downloads/ostechnix.txt"

Восстановление системы

Мы уже создали сценарий восстановления с именем recovery.sh и сохранили его на USB-накопителе. Нам нужно это сейчас, чтобы восстановить нашу сломанную систему.

Загрузите вашу систему с любого загрузочного CD / DVD, USB-накопителя. Разработчик CYA рекомендует использовать живую среду загрузки из той же основной версии, что и ваша установленная среда! Например, если вы используете систему Ubuntu 18.04, то используйте Ubuntu 18.04 live media.

Как только вы подключитесь к работающей системе, подключите USB-накопитель, содержащий скрипт recovery.sh. После того, как вы установили диск (и), ваши системы / и / home будут подключены в каталог /mnt/cya . Это делается очень просто и автоматически обрабатывается сценарием recovery.sh для пользователей Linux.

Затем запустите процесс восстановления с помощью команды:

$ sudo /mnt/cya/home/cya/cya restore

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

Что делать, если у вас нет или потерян сценарий восстановления? Нет проблем, мы все еще можем восстановить нашу сломанную систему.

Загрузите live media. Из сеанса  live session создайте каталог для монтирования дисков.

$ sudo mkdir -p /mnt/cya

Затем подключите ваши / и / home (если они находятся в другом разделе) в каталог / mnt / cya .

$ sudo mount /dev/sda1 /mnt/cya
$ sudo mount /dev/sda3 /mnt/cya/home

Замените / dev / sda1 и / dev / sda3 правильными разделами (используйте команду fdisk -l, чтобы найти ваши разделы).

Наконец, запустите процесс восстановления с помощью команды:

$ sudo /mnt/cya/home/cya/cya restore

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

На этом этапе вы можете получить работающую систему.

от (26.4тыс. баллов)
редактировать от
0

Restic 

Бесплатная, быстрая, открытая, безопасная и кроссплатформенная программа резервного копирования, написанная на языке программирования Go. Restic шифрует данные с помощью AES-256 в режиме счетчика и аутентифицирует их, используя код аутентификации криптографического сообщения Poly1305-AES . Резервное копирование и восстановление данных с помощью нее - очень быстро и просто. 

В Arch Linux Restic доступен в репозитории [Community]. Убедитесь, что репозиторий Community включен, и установите Restic, используя Pacman, как показано ниже.

$ sudo pacman -S restic

Restic также доступен в AUR. Таким образом, вы можете установить его с помощью любых помощников AUR, таких как Yay, в системах на основе Arch.

$ yay -S restic-git

В Debian, Ubuntu, Linux Mint:

$ sudo apt-get install restic

В ОС Nix:

$ nix-env --install restic

Использование Linuxbrew (общий менеджер пакетов для Linux и Mac OS X):

$ brew install restic

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

После того, как Go установлен, git clone restic github respository:

$ git clone https://github.com/restic/restic

Эта команда клонирует все содержимое репозитория restic в текущем рабочем каталоге в вашей системе.

Перейдите в каталог restic:

$ cd restic

И установите Restic, как показано ниже:

$ go run build.go

Выполнено! Далее мы увидим, как использовать Rectic для резервного копирования и восстановления данных.

Резервное копирование и восстановление данных с помощью Restic

Мы можем создавать резервные копии важных данных в самой локальной системе, однако это не настоящая стратегия резервного копирования. Restic поддерживает следующие бэкэнды для хранения резервной копии:

  1. Локальный каталог
  2. сервер sftp (через SSH)
  3. HTTP REST сервер
  4. AWS S3
  5. OpenStack Swift
  6. BackBlaze B2
  7. Microsoft Azure Blob Storage
  8. Google Cloud Storage

Рассмотрим  как выполнять резервное копирование и восстановление данных в локальном каталоге. Для изучения других методов резервного копирования, нажмите на соответствующую ссылку, приведенную выше.

Резервное копирование данных в локальном каталоге с помощью Restic

Во-первых, давайте создадим хранилище для хранения резервной копии. Например, я собираюсь создать хранилище с именем backup в моем каталоге HOME.

$ restic init --repo ~/backup

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

image

Затем сделайте резервную копию ваших данных в хранилище:

$ restic -r ~/backup backup ~/mydata

Введите пароль вашего хранилища:

Пример вывода:

image

Здесь создадим резервную копию папки ~ /mydata в хранилище ~ /backup .

Как видите, restic создал резервную копию данного каталога, т.е. mydata . Кроме того, я создал снимок текущей резервной копии с уникальным именем 6eda7c7d .

Если вы снова запустите указанную команду, restic создаст еще один снимок с уникальным именем, и на этот раз он будет копироваться довольно быстрее, чем предыдущий. Мы можем продолжать добавлять данные в папку и запускать резервное копирование, чтобы создать множество снимков.

Чтобы проверить разницу между двумя снимками, мы можем использовать параметр diff, как показано ниже

$ restic -r ~/backup diff 6eda7c7d b52d462b

image

Как видите, я добавил новый файл mp3 в резервную копию.

Чтобы просмотреть список доступных снимков в репозитории, выполните:

$ restic -r ~ / backup snapshots

image

есть 2 снимка, а именно 6eda7c7d и b52d462b .

Не только целые каталоги, restic также позволяет нам создавать резервные копии одного файла.

$ restic -r ~/backup backup ~/mydata/file.txt

Также возможно исключить некоторые файлы или каталоги. Например, следующая команда исключит все файлы типа .doc :

$ restic -r ~/backup backup --exclude=*.doc ~/mydata

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

Например, создайте файл с именем exclude :

$ vi exclude

Добавьте файлы или папки, которые вы хотите исключить:

*.txt
ostechnix.zip
mydata/movies

Теперь запустите процесс резервного копирования, используя команду:

$ restic -r ~/backup backup --exclude-file=exclude ~/mydata

Для получения более подробной информации о резервном копировании, пожалуйста, запустите:

$ restic help backup

Теперь мы успешно создали резервную копию наших данных. Далее мы увидим, как восстановить данные из локальной резервной копии.

Восстановите данные с помощью Restic

Восстановить данные легко! Просто используйте следующую команду, чтобы восстановить данные из снимка:

$ restic -r ~/backup restore b52d462b --target ~/mydata

image

Мы только что восстановили данные из снимка b52d462b в ~ / mydata .

Вы уже знаете, как перечислить доступные снимки, верно? Вот как мы перечисляем  их:

$ restic -r ~/backup snapshots

Чтобы восстановить один файл из снимка, мы делаем:

$ restic -r ~/backup restore b52d462b --target ~/mydata file.txt

Просмотр резервных данных

Вы можете не захотеть восстанавливать данные, а только просматривать их. Это легко. Вы можете просматривать резервную копию как обычную файловую систему. Сначала создайте точку монтирования:

$ restic help mount

Удалить снимки

Сначала перечислите все доступные снимки в репозитории:

$ restic -r ~/backup snapshots

Чтобы удалить снимок, например 6eda7c7d, выполните:

$ restic -r ~/backup forget 6eda7c7d

Проверьте, удален ли снимок или нет:

$ restic -r ~/backup snapshots

Снимок исчез! Однако данные, на которые ссылались файлы в этом снимке, все еще хранятся в хранилище. Чтобы очистить данные, на которые нет ссылок, запустите:

$ restic -r ~/backup prune

Теперь вы знаете, как установить и использовать программу резервного копирования Restic для защиты важных данных. Рекомендую вам проверить официальную документацию Restic для более детального использования.


...