Резервное копирование Timeshift Ubuntu 24.04.1

Резервное копирование Timeshift Ubuntu 24.04.1
Photo by Jandira Sonnendeck / Unsplash

Предисловие

Это пятая, а по факту самая важная заметка из серии по настройке домашнего интернет шлюза на базе Ubuntu 24.04.1 LTS, посвященная резервному копированию и восстановлению данных из резервных копий с помощью Timeshift. Именно из-за отсутствия резервного копирования начался цикл этих заметок.

Предыдущий материал:

Динамическое обновление DNS-сервера Bind9 при помощи ISC DHCP
Предисловие Это четвертая заметка из серии по настройке домашнего интернет шлюза на базе Ubuntu 24.04.1 LTS. Предыдущий материал: DHCP сервер на Ubuntu 24.04.1 LTSПредисловие Это третья заметка из серии заметок по настройке домашнего шлюза на Ubuntu 24.04.1 LTS. Предыдущий материал: DNS сервер Bind на

Диск бэкапов

Так как наше железо - есть домашний шлюз, диском для бэкапа был выбран USB WD 1Tb. После подключения определился со следующей инфой sudo fdisk -l:

Данные о дисках: df, lsblk, parted, fdisk
Заметка о получении информации о жестких дисках в Unix-системах, в т.ч. часть команд работает под AstraLinux. df -h Выводит информацию только о примонтированных файловых системах, включая те, которые не являются дисковыми разделами. В выводе отображается общий размер, использованный и доступный объем (в т.ч. в процентах), а также точка
Disk /dev/sdc: 931,51 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: Generic
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00957b00

Device     Boot Start        End    Sectors   Size Id Type
/dev/sdc1        2048 1953521663 1953519616 931,5G  7 HPFS/NTFS/exFAT

То, что диск отформатирован в NTFS - не страшно, ведь предпочитаемым вариантом работы будет RSYNC. Он может работать с данной файловой системой в отличии от BTRFS, которому для работы потребуется диск с файловой системой ext4.

Установка Timeshift

sudo add-apt-repository ppa:teejee2008/timeshift -y
sudo apt-get update
sudo apt install timeshift

Создаем первый бэкап командой sudo timeshift --create --comments "First Snapshot" --snapshot-device /dev/sdc1, где /dev/sdc1 - диск определенный мной для бэкапов.

Параметр команды Описание
timeshift --check Проверить что будет выполненно, не выполняя
timeshift --create Создать моментальный снимок системы
timeshift --restore Восстановить систему из моментального снимока
timeshift --delete Удалить моментальный снимок системы
timeshift --delete-all Удалить все моментальные снимки системы
timeshift --list Информация по настройкам
timeshift --comments Описание моментального снимка
timeshift --tags Тип резервного копирования: D - ежедневное, W - еженедельное, M - ежемесячное, O - по требованию
timeshift --rsync Переключиться в режим RSYNC
timeshift --btrfs Переключиться в режим BTRFS
timeshift --debug Показывать отладочные сообщения
timeshift --yes Отвечать ДА на все запросы подтверждения
timeshift --snapshot-device /dev/sdc1 Указать устройство резервного копирования

Команда выполняется некоторое время, по результату получаем примерно следующий вывод:

Mounted '/dev/sdc1' at '/run/timeshift/6411/backup'
------------------------------------------------------------------------------
Estimating system size...
Creating new snapshot...(RSYNC)
Saving to device: /dev/sdc1, mounted at path: /run/timeshift/6411/backup
Syncing files with rsync...
Created control file: /run/timeshift/6411/backup/timeshift/snapshots/2024-10-28_21-43-04/info.json
RSYNC Snapshot saved successfully (688s)
Tagged snapshot '2024-10-28_21-43-04': ondemand

Проверяем настройки командой sudo timeshift --list:

Mounted '/dev/sdc1' at '/run/timeshift/8340/backup'
Device : /dev/sdc1
UUID   : 0E00005D42D70000
Path   : /run/timeshift/8340/backup
Mode   : RSYNC
Status : OK
1 snapshots, 995.6 GB free

Num     Name                 Tags  Description
------------------------------------------------------------------------------
0    >  2024-10-28_21-43-04  O     First Snapshot

Как видим - снапшот создан, тег не был указан, поэтому "по-умолчанию" установлен как снапшот по требованию. Отлично. После первого беэапа обновятся настройки файла /etc/timeshift/timeshift.json:


  "backup_device_uuid" : "0E00005D42D70000",
  "parent_device_uuid" : "",
  "do_first_run" : "false",
  "btrfs_mode" : "false",
  "include_btrfs_home_for_backup" : "false",
  "include_btrfs_home_for_restore" : "false",
  "stop_cron_emails" : "true",
  "schedule_monthly" : "false",
  "schedule_weekly" : "false",
  "schedule_daily" : "false",
  "schedule_hourly" : "false",
  "schedule_boot" : "false",
  "count_monthly" : "2",
  "count_weekly" : "3",
  "count_daily" : "5",
  "count_hourly" : "6",
  "count_boot" : "5",
  "date_format" : "%Y-%m-%d %H:%M:%S",
  "exclude" : [
    "/home/user/**",
    "/root/**"
  ],
  "exclude-apps" : []
}

Обновил настройки, изменил следующие опции:

  "schedule_monthly" : "true",
  "schedule_weekly" : "true",
  "schedule_daily" : "true",
  "count_monthly" : "3",
  "count_weekly" : "4",
  "count_daily" : "7",

После этого я зачем-то удалил первый снапшот, и повторил команду его создания уже с учетом отредактированных настроек в сокращенном формате: sudo timeshift --create --comments "First Snapshot".

Вывод в консоль дополнительно сообщает о создании задания cron для создания резервной копии. Создается файл /etc/cron.d/timeshift-hourly:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=""

0 * * * * root timeshift --check --scripted

Информации о создании заданий на еженедельное/ежемесячное создание резервных копий я не нашел (не увидел), однако на следующий день запустив команду sudo timeshift --list увидел, что есть резервные копии и еженедельные и ежемесячные:

daniil@home:~$ sudo timeshift --list
Mounted '/dev/sdc1' at '/run/timeshift/9271/backup'
Device : /dev/sdc1
UUID   : 0E00005D42D70000
Path   : /run/timeshift/9271/backup
Mode   : RSYNC
Status : OK
4 snapshots, 981.0 GB free

Num     Name                 Tags  Description
------------------------------------------------------------------------------
0    >  2024-11-04_20-51-12  O     First Snapshot
1    >  2024-11-04_22-00-04  M
2    >  2024-11-05_00-00-04  W
3    >  2024-11-05_03-00-05  D

На этом пока что все.