# Практическая работа. Система резервного копирования *Timeshift*. ###### tags: `лабы по Debian 11` ### Цель работы * научиться выполнять backup ФС с помощью утилиты timeshift ### Немного теории #### Timeshift - программа для автоматического периодического создания копий системы (снимков/snapshots). Timeshift предназначен прежде всего для создания снимков системных файлов и настроек. Пользовательские данные по умолчанию не архивируются поэтому в случае сбоя системы, восстанавливаются системные файлы, а данные пользователей остаются в актуальном состоянии (конечно, если они не были повреждены). Резервные копии не могут быть восстановлены на уровне отдельных файлов, восстановление всегда происходит в полном объеме настроек Timeshift. Timeshift поддерживает 2 алгоритма резервного копирования - RSYNC и BTRFS. #### Особенности режима RSYNC: > `timeshift --create --rsync` или `timeshift --create`, т.к. дефолтно стоит режим RSYNC. * снимки создаются путём копирования системных файлов при помощи rsync и создания жёстких ссылок на неизмененные файлы из предыдущего снимка; * все файлы копируются при создании первого снимка. Последующие снимки являются инкрементальными. Неизменные файлы будут связаны с предыдущим снимком, если он доступен; * создание первого снимка может занять до 10 минут; * системный раздел может быть отформатирован в любой файловой системе. Резервный раздел может быть отформатирован в любой файловой системе Linux, поддерживающей жесткие ссылки. Сохранение снимков на несистемный или внешний диск позволяет восстановить систему, даже если системный диск повреждён; * можно задать исключения для файлов и каталогов для экономии дискового пространства; * систему необходимо перезагрузить после восстановления снимка. #### Особенности режима BTRFS: > `timeshift --create --btrfs` * снимки создаются с использованием встроенных средств файловой системы BTRFS; * снимки создаются и восстанавливаются мгновенно (создание снимков — это атомарная транзакция на уровне файловой системы); * снимки восстанавливаются путём замены системных подразделов. Поскольку файлы никогда не копируются, не удаляются и не перезаписываются, риск потери данных отсутствует. Существующая система сохраняется как новый снимок после восстановления; * снимки сохраняются на том же диске, с которого они созданы (системном диске). Хранение на других дисках не поддерживается. Если системный диск выйдет из строя, снимки, хранящиеся на нём, будут потеряны вместе с системой; * нет возможности исключать файлы и каталоги; * размер снимков BTRFS изначально равен нулю. При изменении системных файлов, данные записываются в новые блоки данных, которые занимают дисковое пространство (копирование при записи). Файлы в снимке продолжают указывать на исходные блоки данных; * ОС должна быть установлена на раздел BTRFS с разбивкой на подразделы @ и @home. Другие виды разделов не поддерживаются; * снимки можно восстановить без немедленной перезагрузки запущенной системы. #### Функции программы / синтаксис ``` timeshift --create [options] # создать снимок timeshift --restore [options] # восстановить систему timeshift --delete [options] # удалить снимок timeshift --list [options] # вывести список снимков ``` ``` Создание снимков: --create - создать снимок --commets "string" - добавить комментарий к создаваемому снимку --tags {O,B,H,D,W,M} - указать уровень снимка O - дефолтное значение B - при загрузке системы H - ежечасно D - ежедневно W - еженедельно M - ежемесячно ``` ``` Восстановление: --restore - восстановить систему со снимка --clone - клонировать текущую систему --snapshot "name" - восстановить систему с указанного снимка --grub "device" - установить загрузчик GRUB2 на выбранное устройство --skip-grub - пропустить установку GRUB2 ``` ``` Удаление: --delete - удалить снимок --delete-all - удалить все снимки ``` --- ## Резервирование файловой системы с помощью timeshift. #### 1. Устанавливаем утилиту timeshift `apt install timeshift` ![](https://i.imgur.com/DxwXVxg.png) > Перед установкой следует обновить репозитории пакетного менеджера последовательным выполнением команд `sudo apt update` и `sudo apt upgrade`. #### 2. Инициализируем создание снапшота файловой системы, расположенной на /dev/sda1 `timeshift --create --comments "First Backup" --tags D` ![](https://i.imgur.com/Wp6MApv.png) #### 3. Запускаем режим восстановления для отката системы до сделанного снапшота. `timeshift --restore` ![](https://i.imgur.com/BAYSmwF.png) #### 4. Выбираем единственную запись снапшота. `Enter snapshot number (a=Abort, p=Previous, n=Next): 0` ![](https://i.imgur.com/ctI0ebz.png) #### 5. Переустанавливаем загрузчик на дефолтный раздел /dev/sda и ожидаем окончания работы программы. `Re-install GRUB2 bootloader? (reccomended) (y/n): y` ![](https://i.imgur.com/8qNT9XJ.png) ![](https://i.imgur.com/LTDN0qD.png) ![](https://i.imgur.com/9htNaUK.png) --- ## Создание бэкапа c помощью timeshift и хранение на сетевом диске с помощью NFS. ### I) Установка и настройка NFS на сервере. #### 1. Устанавливаем пакеты nfs-common и nfs-kernel-server. `apt install nfs-kernel-server nfs-common -y` ![](https://i.imgur.com/v8KXqj4.png) #### 2. Запускаем службу nfs-server и включаем её в автозагрузку. `systemctl start nfs-server` `systemctl enable nfs-server` ![](https://i.imgur.com/6zTNt4R.png) #### 3. Создаем каталог /srv/nfs/share/. `mkdir -p /srv/nfs/share/` ![](https://i.imgur.com/jmT7cxW.png) #### 4. Открываем файл /etc/exports и дописываем строчку. `nano /etc/exports` `/srv/nfs/share/ 192.168.65.0/24(rw,no_root_squash)` ![](https://i.imgur.com/wKy3JUO.png) #### 5. Перезапускаем службу nfs-server. `systemctl restart nfs-server` ![](https://i.imgur.com/BrrLvvO.png) --- ### II) Установка и настройка NFS на клиенте. #### 1. Устанавливаем пакет nfs-common. `apt install nfs-common` ![](https://i.imgur.com/cV7MkFD.png) #### 2. Создаем каталог /mnt/nfs/share/. `mkdir -p /srv/nfs/share/` ![](https://i.imgur.com/KVd2QSv.png) #### 3. Открываем файл `/etc/fstab` для автомонтирования раздела при загрузке системы. `nano /etc/fstab` `192.168.65.143:/srv/nfs/share/ /mnt/nfs/share/ nfs rw 0 1` ![](https://i.imgur.com/nWD8Lb7.png) #### 4. Монтируем раздел к основной файловой системе. `mount -a` ![](https://i.imgur.com/JzgIqLA.png) --- ### III) Создание бэкапа системы клиента и копирование бэкапа на сетевой диск. #### 1. Установка утилиты timeshift. `apt install timeshift -y` ![](https://i.imgur.com/KLTlSBW.png) #### 2. Создание снимка с помощью timeshift. `timeshift --create --rsync --comments "New Backup" --tags D` ![](https://i.imgur.com/0znoeLG.png) #### 3. Копирование бэкапа на сетевой диск. `cp -av /timeshift/ /mnt/nfs/share/` ![](https://i.imgur.com/6Jik4hV.png) #### 4. Удаление бэкапа для проверки работоспособности хранения снимка на сетевом диске. `rm -rf /timeshift/` ![](https://i.imgur.com/ICz9rc0.png) --- ### IV) Копирование снимка с сервера на клиент и восстановление системы с помощью timeshift. #### 1. Копирование снимка с сетевого диска. `cp -av /mnt/nfs/share/ /` ![](https://i.imgur.com/RwL5DcK.png) #### 2. Восстановление системы с помощью timeshift. `timeshift --restore` ![](https://i.imgur.com/WtMbvPX.png) ![](https://i.imgur.com/WTGdzLa.png) ![](https://i.imgur.com/R7jkYZh.png) Вывод: в двнной практической работе в научились делать резервные копии файловых систем и реализовывать хранение на удаленном хранилище.