Найти в Дзене

Timeshift (резервное копирование и восстановление)

Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция по установке и работе (в основном для собственного пользования) с Timeshift на примере Arch Linux с файловой системой BTRFS с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности. Timeshift — это инструмент для создания резервных копий и восстановления системы на Linux, который позволяет создавать снимки (snapshot) вашей файловой системы. Хотя Timeshift обычно используется через графический интерфейс что более предпочтительнее так как некоторые функции не реализованы в консоли, он также поддерживает работу в консоли, в этом ключе ее и рассмотрим. Установка. Для начала установим пакет Timeshift опять же в контексте Arch Linux, воспользуемся следующей командой: sudo pacman -S timeshift Основные ключи. Разберем краткое описание основных параметров для работы с timeshift в консоли: --create — создать новый снимок системы.
--restore — в

Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция по установке и работе (в основном для собственного пользования) с Timeshift на примере Arch Linux с файловой системой BTRFS с пояснениями и все возможными мыслями. Действия будут происходить на KVM/QEMU для наглядности.

Timeshift — это инструмент для создания резервных копий и восстановления системы на Linux, который позволяет создавать снимки (snapshot) вашей файловой системы. Хотя Timeshift обычно используется через графический интерфейс что более предпочтительнее так как некоторые функции не реализованы в консоли, он также поддерживает работу в консоли, в этом ключе ее и рассмотрим.

Установка. Для начала установим пакет Timeshift опять же в контексте Arch Linux, воспользуемся следующей командой:

sudo pacman -S timeshift

Основные ключи. Разберем краткое описание основных параметров для работы с timeshift в консоли:

--create — создать новый снимок системы.
--restore — восстановить систему из выбранного снимка.
--delete — удалить конкретный снимок.
--delete-all — удалить все снимки.
--list — показать список всех снимков.
--check — проверить, что будет выполнено, не делая изменений.
--comments "текст" — добавить комментарий к снимку.
--tags B/H/D/W/M/O — задать тип снимка: B (после загрузки системы), H (ежечасный), D (ежедневный), W (еженедельный), M (ежемесячный), O (по требованию).
--rsync или --btrfs — выбрать режим работы (rsync или btrfs).
--snapshot-device <устройство> — указать устройство для хранения снимков.
--debug — включить вывод отладочных сообщений.

более детально изучить возможности timeshift запустив с ключом --help

Перейдем к основным конструкциям команд и примеры использования Timeshift в терминале:

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

sudo timeshift --create

Вы можете добавить флаг `--comments`, чтобы добавить комментарий к снимку:

sudo timeshift --create --comments "My backup"

Вы можете добавить флаг `--tags`, чтобы задать тип снимку:

sudo timeshift --create --comments "My backup" --tags D
-2

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

sudo timeshift --list
-3

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

sudo timeshift --delete (запустит интерактивный выбор снимка).
-4

или же

sudo timeshift --delete --snapshot 'имя_снимка'
-5

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

sudo timeshift --delete-all
-6

-7

Нюанс. Если вы когда либо использовали восстановление то не в коем случае не пользуйтесь параметром --delete-all утилита выпадает в критическую ошибку, и теряет все снепшоты лечится это банальным удалением утилиты, ее конфига и установкой по новой!!!

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

sudo timeshift --restore (запустит интерактивный выбор снимка).
-8

попробуем восстановиться с нулевого снепшота, жмем enter для продолжения

-9

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

Давольно таки не сложно делать снепшоты и восстанавливать с них тем более все это делается мгновенно на уровне файловой системы BTRFS.

Автоматизация бэкапов. Автоматизация Timeshift реализуется через встроенный планировщик: можно настроить автоматическое создание снимков по расписанию — ежедневно, еженедельно, ежемесячно или при запуске системы. Всё это задаётся в графическом интерфейсе, и дальше Timeshift сам будет делать резервные копии в указанные интервалы.

Так же для консольного варианта автоматизацию можно реализовать достаточно элеганетным способом через cron или systemd-таймеры, но в данном повествовании мы затроним второй вариант.

Напишем простой bash-скрипта для создания бэкапов через timeshift

#!/bin/bash
sudo timeshift --create --btrfs --comments "Автоматический бэкап ($(date +"%d.%m.%Y %H:%M:%S"))"
...
-10

делай сделаем его исполняемым

chmod +x /usr/local/bin/timeshift-backup.sh
-11

попробуем проверить запустив его

/usr/local/bin/timeshift-backup.sh

и уже известной командой посмотрим есть ли снепшоты

sudo timeshift --list
-12

Как видим скрипт справляется со своей задачей. Перейдем к настройки запуска скрипта бэкапа через systemd-таймер:

Создадим сервис-файл /etc/systemd/system/timeshift-backup.service:

[Unit]
Description=Timeshift автоматический бэкап
[Service]
Type=simple
ExecStart=/usr/local/bin/timeshift-backup.sh
-13

Создадим таймер-файл `/etc/systemd/system/timeshift-backup.timer`:

[Unit]
Description=Таймер для Timeshift бэкапа
[Timer]
OnCalendar=02:00
Persistent=true
[Install]
WantedBy=timers.target
-14

Нюанс. Для демонстрации я буду использовать OnBootSec=10 в место OnCalendar=02:00, то есть бэкап будет сниматься после запуска системы спустя 10 секунд.

Активируем таймер что бы запущен и запускался при старте системы, а следующей командой systemd перечитает все unit-файлы и обновит внутреннюю конфигурацию без перезагрузки системы:

sudo systemctl enable --now timeshift-backup.timer
sudo systemctl daemon-reload
-15

Теперь скрипт будет запускаться согласно расписанию автоматически.

Если требуется другой график — просто измените строку с OnCalendar.

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

Заключение. Timeshift — это мощный инструмент для резервного копирования и восстановления системы в Linux. Работа с ним через консоль может быть удобной для администраторов и пользователей, которые предпочитают терминал графическому интерфейсу.

Подведя итог данного повествования о Timeshift складывается не однозначное впечатление в силу ее разных возможностей в консольном и графическом режиме. Субъективный вывод: лучший вариант пользоваться Timeshift с графической оболочкой, консольный вариант лишь для экстренного восстановления системы

Не забывайте регулярно проверять состояние ваших резервных копий и тестировать процесс восстановления!

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

За сим откланиваюсь...