Timeshift
Timeshift — программа для автоматического периодического создания копий системы (снимков/snapshots).
Timeshift предназначен прежде всего для создания снимков системных файлов и настроек. Пользовательские данные по умолчанию не архивируются поэтому в случае сбоя системы, восстанавливаются системные файлы, а данные пользователей остаются в актуальном состоянии (конечно, если они не были повреждены).
Резервные копии не могут быть восстановлены на уровне отдельных файлов, восстановление всегда происходит в полном объеме настроек Timeshift.
Установка
Установить пакет timeshift:
# apt-get install timeshift
Запуск программы
Запустить Timeshift можно из «Меню запуска приложений» («Система» → «Timeshift (Программа для восстановления системы)») или из командной строки:
$ timeshift-launcher
При первом запуске будет запущен «Мастер установки». Запустить «Мастер установки» или открыть окно настроек резервного копирования также можно, нажав соответствующую кнопку на панели инструментов в окне программы Timeshift:
Настройка резервного копирования
Режим RSYNC
Особенности режима RSYNC:
- снимки создаются путём копирования системных файлов при помощи rsync и создания жёстких ссылок на неизмененные файлы из предыдущего снимка;
- все файлы копируются при создании первого снимка. Последующие снимки являются инкрементальными. Неизменные файлы будут связаны с предыдущим снимком, если он доступен;
- создание первого снимка может занять до 10 минут;
- системный раздел может быть отформатирован в любой файловой системе. Резервный раздел может быть отформатирован в любой файловой системе Linux, поддерживающей жесткие ссылки. Сохранение снимков на несистемный или внешний диск позволяет восстановить систему, даже если системный диск повреждён;
- можно задать исключения для файлов и каталогов для экономии дискового пространства;
- систему необходимо перезагрузить после восстановления снимка.
На вкладке «Тип» выбрать тип снимков:
Снимки имеют большой размер, поэтому желательно хранить их на другом диске или разделе. По умолчанию снимки сохраняются в системном (корневом) разделе в /timeshift, также можно выбрать другие разделы Linux.
На вкладке «Место» можно выбрать место, где будут храниться снимки:
На вкладке «Расписание» можно выбрать несколько уровней создания снимков (ежемесячно, еженедельно, ежедневно, ежечасно, при загрузке) и указать количество сохраняемых снимков для каждого уровня:
Снимки уровня «Загрузка» создаются при каждом запуске системы (с задержкой в 10 минут). Они выполняются в фоне и не влияют на скорость загрузки системы.
Т.к. Timeshift не предназначен для резервного копирования пользовательских данных, по умолчанию домашние каталоги пользователей не включаются в резервную копию. Это сделано для предотвращения перезаписи пользовательских данных во время восстановления, а также для уменьшения размера резервных копий.
При выборе опции «Include only hidden files» («Включить скрытые элементы») на вкладке «Пользователи» будет выполнено резервное копирование и восстановление скрытых файлов и каталогов в домашней папке (эти папки содержат пользовательские файлы конфигурации и при необходимости могут быть включены в резервные копии):
На вкладке «Фильтры» можно выборочно указать, какие файлы/каталоги включать/исключать из резервного копирования (динамические каталоги исключаются по умолчанию: /dev, /proc, …):
В данном примере из резервного копирования будут исключены все файлы mp3, все системные журналы, кроме журналов веб-сервера apache.
Редактировать шаблон можно дважды щелкнув левой кнопкой мыши по строке шаблона.
- '*' в шаблоне соответствует любому компоненту пути кроме "/";
- '**' в шаблоне соответствует любому компоненту пути, включая "/".
Например:
- /mydir/ — каталог mydir (но не его содержимое);
- /mydir/* — все файлы и каталоги в mydir (но не содержимое вложенных каталогов);
- /mydir/** — все файлы и каталоги в mydir (включая содержимое вложенных каталогов, рекурсивно);
- /mydir/*** — соответствует как каталогу mydir (как если бы было указано «/mydir/»), так и всему содержимому этого каталога (как если бы было указано «/mydir/**»).
Для того чтобы исключить из снимка содержимое каталога, но сам каталог оставить, нужно указать в шаблоне '/mydir/**', а не '/mydir/' (для каталога указание "/" в конце обязательно).
Шаблон не начинающийся с '/' проверяется с конца строки.
Если шаблон начинается на "+", то он рассматривается как включающий шаблон.
Подробнее см. man rsync.
Просмотреть итоговый список исключений можно, нажав кнопку «Кратко» на вкладке «Фильтры»:
Режим BTRFS
Особенности режима BTRFS:
- снимки создаются с использованием встроенных средств файловой системы BTRFS;
- снимки создаются и восстанавливаются мгновенно (создание снимков — это атомарная транзакция на уровне файловой системы);
- снимки восстанавливаются путём замены системных подразделов. Поскольку файлы никогда не копируются, не удаляются и не перезаписываются, риск потери данных отсутствует. Существующая система сохраняется как новый снимок после восстановления;
- снимки сохраняются на том же диске, с которого они созданы (системном диске). Хранение на других дисках не поддерживается. Если системный диск выйдет из строя, снимки, хранящиеся на нём, будут потеряны вместе с системой;
- нет возможности исключать файлы и каталоги;
- размер снимков BTRFS изначально равен нулю. При изменении системных файлов, данные записываются в новые блоки данных, которые занимают дисковое пространство (копирование при записи). Файлы в снимке продолжают указывать на исходные блоки данных;
- ОС должна быть установлена на раздел BTRFS с разбивкой на подразделы @ и @home (см. Btrfs). Другие виды разделов не поддерживаются;
- снимки можно восстановить без немедленной перезагрузки запущенной системы.
На вкладке «Тип» выбрать тип снимков:
На вкладке «Место» указать устройство, где будут храниться снимки:
На вкладке «Расписание» можно выбрать несколько уровней создания снимков (ежемесячно, еженедельно, ежедневно, ежечасно, при загрузке) и указать количество сохраняемых снимков для каждого уровня:
Снимки уровня «Загрузка» создаются при каждом запуске системы (с задержкой в 10 минут). Они выполняются в фоне и не влияют на скорость загрузки системы.
Т.к. Timeshift не предназначен для резервного копирования пользовательских данных, по умолчанию домашние каталоги пользователей не включаются в резервную копию. На вкладке «Пользователи» можно включить подраздел @home в создаваемые снимки:
Создание снимков
Снимки будут создаваться автоматически согласно настроенному расписанию.
Для создания снимка в ручном режиме следует нажать кнопку «Создать» на панели инструментов. Создание снимка в режиме RSYNC:
Восстановление системы
Снимки можно восстановить либо из работающей системы (оперативное восстановление), либо из другой системы, на которой установлен Timeshift (автономное восстановление).
Снимки можно восстановить, выбрав снимок в главном окне и нажав кнопку «Восстановить» на панели инструментов.
Для завершения процесса восстановления требуется перезагрузка системы.
При восстановлении снимка в режиме RSYNC после нажатия кнопки «Восстановить» можно выбрать устройство, куда будут восстановлены файлы, указать нужно ли переустанавливать GRUB (кнопка «Параметры загрузчика»):
на следующем шаге будут показаны файлы, которые будут созданы/восстановлены/удалены в процессе восстановления снимка (только в режиме RSYNC):
Работа с Timeshift в командной строке
Вывод справки о команде:
$ timeshift
Если параметры не указаны, например при создании снимка, значения по умолчанию будут загружены из конфигурации приложения.
Просмотр списка снимков:
# timeshift --list
/dev/sda2 is mounted at: /run/timeshift/backup, options: rw,relatime,ssd,space_cache=v2,subvolid=5,subvol=/
Device : /dev/sda2
UUID : 9306bd96-eaee-41d9-a65d-6385c68357d2
Path : /run/timeshift/backup
Mode : BTRFS
Status : OK
5 snapshots, 107.4 GB free
Num Name Tags Description
------------------------------------------------------------------------------
0 > 2021-12-28_16-56-22 O
1 > 2021-12-28_17-01-26 O
2 > 2021-12-29_08-48-49 O
3 > 2021-12-29_15-40-02 O D
4 > 2021-12-29_15-41-48 O Before restoring '2021-12-28 17:01:26'
Создание снимка:
# timeshift --create
Пример:
# timeshift --create --comments "after update" --tags D
Using system disk as snapshot device for creating snapshots in BTRFS mode
/dev/sda2 is mounted at: /run/timeshift/backup, options: rw,relatime,ssd,space_cache=v2,subvolid=5,subvol=/
Creating new backup...(BTRFS)
Saving to device: /dev/sda2, mounted at path: /run/timeshift/backup
Created directory: /run/timeshift/backup/timeshift-btrfs/snapshots/2021-12-29_16-06-38
Created subvolume snapshot: /run/timeshift/backup/timeshift-btrfs/snapshots/2021-12-29_16-06-38/@
Created control file: /run/timeshift/backup/timeshift-btrfs/snapshots/2021-12-29_16-06-38/info.json
BTRFS Snapshot saved successfully (0s)
Tagged snapshot '2021-12-29_16-06-38': ondemand
------------------------------------------------------------------------------
Создание снимка, если он запланирован (есть в расписании):
# timeshift --check
Восстановить снимок (параметры будут запрошены в интерактивном режиме):
# timeshift --restore
Восстановить снимок:
# timeshift --restore --snapshot '2021-12-28_17-01-26'
Восстановить определенный снимок в необходимый раздел (для rsync):
# timeshift --restore --snapshot 1 --target /dev/sda2
Удалить снимок:
# timeshift --delete --snapshot '2021-12-28_17-01-26'