CYA — утилита моментального снимка системы и восстановления для Linux
CYA, означает Cover Your Assets, представляет собой бесплатную утилиту с открытым исходным кодом для создания снимков и восстановления системы. для любых Unix-подобных операционных систем, использующих оболочку BASH. Cya портативна и поддерживает многие популярные файловые системы, такие как EXT2/3/4, XFS, UFS, GPFS, reiserFS, JFS, BtrFS, ZFS и т. д. Обратите внимание, что Cya не выполняет резервное копирование реальных пользовательских данных . Он только создает резервную копию и восстанавливает саму операционную систему. Cya на самом деле представляет собой утилиту для восстановления системы. По умолчанию будут созданы резервные копии всех ключевых каталогов, таких как /bin/, /lib/, /usr/, /var/ и некоторых других. Однако вы можете определить свои собственные пути к каталогам и файлам для включения в резервную копию, поэтому Cya также подберет их. Кроме того, можно определить некоторые каталоги/файлы, которые следует пропустить из резервной копии. Например, вы можете пропустить /var/logs/, если не регистрируете файлы. На самом деле Cya использует метод резервного копирования Rsync. Однако Cya немного проще, чем Rsync, при создании скользящих резервных копий.
При восстановлении вашей операционной системы Cya выполнит откат ОС, используя ваш профиль резервной копии, который вы создали ранее. Вы можете восстановить всю систему или только отдельные каталоги. Вы также можете легко получить доступ к файлам резервных копий даже без полного отката с помощью терминала или файлового менеджера. Еще одна примечательная особенность: мы можем создать собственный сценарий восстановления для автоматизации монтирования системных разделов при восстановлении с Live CD, USB или сетевого образа. Короче говоря, CYA может помочь вам восстановить вашу систему в предыдущее состояние, если вы столкнулись с поломкой системы, вызванной обновлением программного обеспечения, изменениями конфигурации, вторжениями/взломами и т. д.
Установить ЦЯ
Установка CYA тривиальна. Все, что вам нужно сделать, это загрузить двоичный файл Cya и поместить его в системный путь.
git clone https://github.com/cleverwise/cya.git
Это клонирует последнюю версию cya в каталог cya в вашем текущем рабочем каталоге.
Затем скопируйте двоичный файл cya на свой путь или куда хотите.
sudo cp cya/cya /usr/local/bin/
Это так просто. CYA установлен! Теперь давайте продолжим и создадим снимки.
Создание снимков
Прежде чем создавать снимки/резервные копии, создайте скрипт восстановления с помощью команды:
$ cya script
☀ Cover Your Ass(ets) v2.2 ☀
ACTION ⯮ Generating Recovery Script
Generating Linux recovery script ...
Checking sudo permissions...
Complete
IMPORTANT: This script will ONLY mount / and /home. Thus if you are storing data on another mount point open the recovery.sh script and add the additional mount point command where necessary. This is also a best guess and should be tested before an emergency to verify it works as desired.
‣ Disclaimer: CYA offers zero guarantees as improper usage can cause undesired results
‣ Notice: Proper usage can correct unauthorized changes to system from attacks
Приведенная выше команда создаст каталог с именем "/home/cya/" и сохранит в нем файл Recovery.sh.
ls /home/cya/
cya cya.conf LAST_RUN points recovery.sh
Сохраните полученный файл recovery.sh на USB-накопитель, который мы собираемся использовать позже при восстановлении резервных копий. Этот скрипт поможет вам настроить chrooted-среду и смонтировать диски при откате системы.
Теперь давайте создадим снимки.
Чтобы создать стандартную скользящую резервную копию, запустите:
cya save
Приведенная выше команда сохранит три резервные копии перед перезаписью.
Пример вывода:
☀ Cover Your Ass(ets) v2.2 ☀
ACTION ⯮ Standard Backup
Checking sudo permissions...
[sudo] password for sk:
We need to create /home/cya/points/1 ... done
Backing up /bin/ ... complete
Backing up /boot/ ... complete
Backing up /etc/ ... complete
.
.
.
Backing up /lib/ ... complete
Backing up /lib64/ ... complete
Backing up /opt/ ... complete
Backing up /root/ ... complete
Backing up /sbin/ ... complete
Backing up /snap/ ... complete
Backing up /usr/ ... complete
Backing up /initrd.img ... complete
Backing up /initrd.img.old ... complete
Backing up /vmlinuz ... complete
Backing up /vmlinuz.old ... complete
Write out date file ... complete
Update rotation file ... complete
‣ Disclaimer: CYA offers zero guarantees as improper usage can cause undesired results
‣ Notice: Proper usage can correct unauthorized changes to system from attacks
Вы можете просмотреть содержимое вновь созданного снимка в папке /home/cya/points/.
$ 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.
Как только вы окажетесь в работающей системе, смонтируйте USB-накопитель, содержащий сценарий восстановления.sh. После подключения дисков / и /home вашей системы будут смонтированы в каталог /mnt/cya. Это делается очень просто и автоматически выполняется с помощью сценария recovery.sh для пользователей Linux.
Затем запустите процесс восстановления с помощью команды:
sudo /mnt/cya/home/cya/cya restore
Просто следуйте инструкциям на экране. После завершения восстановления удалите действующий носитель, отключите диски и, наконец, перезагрузите систему.
Что делать, если у вас нет или вы потеряли сценарий восстановления? Нет проблем, мы все еще можем восстановить нашу сломанную систему.
Загрузите живой носитель. В реальном сеансе создайте каталог для монтирования дисков.
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
После завершения восстановления отключите все смонтированные разделы, удалите установочный носитель и перезагрузите систему.
На этом этапе вы можете получить работающую систему. Я удалил некоторые важные библиотеки на сервере Ubuntu 18.04 LTS. Я успешно восстановил его в рабочее состояние с помощью утилиты CYA.
Рекомендуется к прочтению:
- Systemback – восстановление рабочего стола и сервера Ubuntu до предыдущего состояния
- Как понизить версию пакета в Ubuntu
- Как понизить версию пакета в Arch Linux
- Как понизить версию всех пакетов до определенной даты в Arch Linux
- Как восстановить сломанную Arch Linux до предыдущего рабочего состояния
- Как восстановить заводские настройки Ubuntu
Запланировать резервное копирование CYA
Всегда рекомендуется использовать crontab для планирования процесса создания снимков CYA через регулярные промежутки времени. Вы можете настроить задание cron, используя root, или настроить пользователя, которому не нужно вводить пароль sudo.
В приведенном ниже примере запись cya будет запускаться каждый понедельник в 2:05 ночи, а выходные данные будут сбрасываться в /dev/null.
5 2 * * 1 /home/USER/bin/cya save >/dev/null 2>&1
Заключение
В отличие от Systemback и других утилит восстановления системы, Cya не является утилитой восстановления для конкретного дистрибутива. Он поддерживает многие операционные системы Linux, использующие BASH. Это одно из обязательных приложений в вашем арсенале. Установите его прямо сейчас и создавайте снимки. Вы не пожалеете, если случайно сломаете свою систему Linux.
Ресурс:
- Репозиторий CYA GitHub