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

Приведенная выше команда создаст каталог с именем “/home/cya/” и сохранит в нем файл recovery.sh.
$ ls /home/cya/
cya cya.conf LAST_RUN points recovery.sh
Сохраните полученный файл recovery.sh на USB-накопителе, который мы будем использовать позже при восстановлении резервных копий. Этот скрипт поможет вам настроить изолированную среду и смонтировать диски при откате системы.
Теперь давайте создадим снимки.
Для создания стандартной скользящей резервной копии выполните:
$ cya save
Приведенная выше команда сохранит три резервных копии перед перезаписью.
Пример вывода:

Вы можете просмотреть содержимое только что созданного снимка в /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
После завершения восстановления отключите все смонтированные разделы, удалите установочный носитель и перезагрузите систему.
На этом этапе вы можете получить работающую систему.