Добрый день дорогой читатель, данное повествование не является истиной в последней инстанции, это некая инструкция по установке и работе (в основном для собственного пользования) с 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
Список снимков. Чтобы просмотреть список всех созданных снимков, выполните:
sudo timeshift --list
Удаление снимка. Чтобы удалить конкретный снимок, используйте:
sudo timeshift --delete (запустит интерактивный выбор снимка).
или же
sudo timeshift --delete --snapshot 'имя_снимка'
Чтобы удалить все снимки, используйте
sudo timeshift --delete-all
Нюанс. Если вы когда либо использовали восстановление то не в коем случае не пользуйтесь параметром --delete-all утилита выпадает в критическую ошибку, и теряет все снепшоты лечится это банальным удалением утилиты, ее конфига и установкой по новой!!!
Восстановление из снимка. Чтобы восстановить систему из конкретного снимка, используйте команду:
sudo timeshift --restore (запустит интерактивный выбор снимка).
попробуем восстановиться с нулевого снепшота, жмем enter для продолжения
далее подтверждаем наше желание восстановить со снепшота и перезагружаем систему, и у нас восстановленная система уровня нулевого снепшота(помните, для восстановления выбрали нулевой снепшот).
Давольно таки не сложно делать снепшоты и восстанавливать с них тем более все это делается мгновенно на уровне файловой системы BTRFS.
Автоматизация бэкапов. Автоматизация Timeshift реализуется через встроенный планировщик: можно настроить автоматическое создание снимков по расписанию — ежедневно, еженедельно, ежемесячно или при запуске системы. Всё это задаётся в графическом интерфейсе, и дальше Timeshift сам будет делать резервные копии в указанные интервалы.
Так же для консольного варианта автоматизацию можно реализовать достаточно элеганетным способом через cron или systemd-таймеры, но в данном повествовании мы затроним второй вариант.
Напишем простой bash-скрипта для создания бэкапов через timeshift
#!/bin/bash
sudo timeshift --create --btrfs --comments "Автоматический бэкап ($(date +"%d.%m.%Y %H:%M:%S"))"
...
делай сделаем его исполняемым
chmod +x /usr/local/bin/timeshift-backup.sh
попробуем проверить запустив его
/usr/local/bin/timeshift-backup.sh
и уже известной командой посмотрим есть ли снепшоты
sudo timeshift --list
Как видим скрипт справляется со своей задачей. Перейдем к настройки запуска скрипта бэкапа через systemd-таймер:
Создадим сервис-файл /etc/systemd/system/timeshift-backup.service:
[Unit]
Description=Timeshift автоматический бэкап
[Service]
Type=simple
ExecStart=/usr/local/bin/timeshift-backup.sh
Создадим таймер-файл `/etc/systemd/system/timeshift-backup.timer`:
[Unit]
Description=Таймер для Timeshift бэкапа
[Timer]
OnCalendar=02:00
Persistent=true
[Install]
WantedBy=timers.target
Нюанс. Для демонстрации я буду использовать OnBootSec=10 в место OnCalendar=02:00, то есть бэкап будет сниматься после запуска системы спустя 10 секунд.
Активируем таймер что бы запущен и запускался при старте системы, а следующей командой systemd перечитает все unit-файлы и обновит внутреннюю конфигурацию без перезагрузки системы:
sudo systemctl enable --now timeshift-backup.timer
sudo systemctl daemon-reload
Теперь скрипт будет запускаться согласно расписанию автоматически.
Если требуется другой график — просто измените строку с OnCalendar.
Удаление старых бэкапов. К сожалению у консольной версии нет штатных автоматических механизмов контроля устаревших бэкапов, он есть только у версии с графической оболочкой.
Заключение. Timeshift — это мощный инструмент для резервного копирования и восстановления системы в Linux. Работа с ним через консоль может быть удобной для администраторов и пользователей, которые предпочитают терминал графическому интерфейсу.
Подведя итог данного повествования о Timeshift складывается не однозначное впечатление в силу ее разных возможностей в консольном и графическом режиме. Субъективный вывод: лучший вариант пользоваться Timeshift с графической оболочкой, консольный вариант лишь для экстренного восстановления системы
Не забывайте регулярно проверять состояние ваших резервных копий и тестировать процесс восстановления!
За основу взято ArchWiki, так же информация с различных тематических форумов по данной теме переписаны под себя
За сим откланиваюсь...