pankovea-patch-1 #1

Merged
pankovea merged 11 commits from pankovea-patch-1 into main 2025-07-14 15:22:41 +00:00
Showing only changes of commit 7658041e3d - Show all commits

View File

@ -1,33 +1,46 @@
# Скрипт для резервирования данных # Скрипт для резервирования данных
Скрипт используется для резервирования датасетов файловой системы zfs. Скрипт используется для резервирования датасетов файловой системы zfs.
Необходим запуск от суперпользователя. Необходим запуск от суперпользователя.
## Флаги ## Флаги
Используемая оболочка: zsh Используемая оболочка: zsh
`./zfs_send.zsh`
- `-rs | --remote-server <>` IP адрес или доменное имя сервера для резервирования (по умолчанию 192.168.0.162)
- `-ru | --remote-user <>` Пользователь SSH на удалённом сервер (по умолчанию root)
- `-s | --snapshot <>` Задать имя снимка для резервирования (по умолчанию manual-YYYYMMDD, где YMD - текущая дата, месяц и день)
- `-ld | --local-dataset <>` Резервируемый датасет (по умолчанию интерактивный режим)
- `-rd | --remote-dataset <>` Нахождение датасета на удалённой машине (по умолчанию интерактивный режим)
- `-i | --incremental` Режим резервирования (по умолчанию полная копия)
Данные по умолчанию можно отредактировать в самом скрипте в рамом начале.
```zsh Ожидается, что доступ по SSH на удалённую машину уже настроен
./zfs_send.zsh
-r|--backup-server IP адрес или доменное имя сервера для резервирования
-г|--baсkup-user Пользователь SSH на удалённом сервер (по умолчанию root)
-s|--snapshot Задать имя снимка для резервирования
-i|--incremental Режим резервирования (по умолчанию полная копия)
```
Ожидается что доступ по SSH на удалённую машину уже настроен
### Режим резервирования датасета целиком ### Режим резервирования датасета целиком
Если не использован флаг -i Когда не использован флаг `-i`
Скрипт запросит список датасетов на локально машине и на удалённом сервере. Будет предлоден выбор какой датасет на какой резервировать. Если не указаны `--local-dataset` и `--remote-dataset`, то скрипт запросит список датасетов на локальной машине и на удалённом сервере. Будет предлоден выбор какой датасет на какой резервировать.
Примеры:
- `./zfs_send.zsh` Полная резервная копия дата сета на сервер по умолчанию. Указать датасаты для резервирования можно в интерактивном режиме.
- `./zfs_send.zsh -rs backup.local -ld /main_pool/Documents -rd /backup` В данном случае на удалённой машине будет создан датасет `/backup/Documents`. Если такой датасет уже существует, то будет выдана ошибка и резервирование остановится.
# Режим инкрементный #### Пример вывода в процессе работы
После полного резервирования возможно сделать резерв только изменённой части файловой системы.
Флаг -i
Скрипт сопоставит имеющиеся датасеты на локальной и удалённых машинах и предложит возможные варианты резервирования. Сопоставление производится по совпадения названий датасетов нижнего уровня.
# После запуска ### Режим инкрементный
После полного резервирования возможно сделать резерв только изменённой части файловой системы указав флаг `-i`
Если не указаны `--local-dataset` и `--remote-dataset`, то скрипт сопоставит имеющиеся датасеты на локальной и удалённых машинах и предложит возможные варианты резервирования. Сопоставление производится по совпадения названий датасетов нижнего уровня.
- `./zfs_send.zsh -rs 192.168.0.162 -i` Инкрементная резервная копия дата сета. Указать датасаты для резервирования в интерактивном режиме.
- `./zfs_send.zsh -rs 192.168.0.162 -i -ld /main_pool/Documents -rd /backup/Documents` В данном случае на удалённой машине должен существовать датасет `/backup/Documents` и у него должны сохранятся прошлые снимки файловой системы для определения новых файлов для резервирования. Если такой датасет отсутвует, то будет выдана ошибка и резервирование остановится.
#### Пример вывода в процессе работы
### Примеры запуска
- `./zfs_send.zsh` Полная резервная копия выбранного в интерактивном режиме дата сета на сервер по умолчанию. Будет создан снимок файловой системы с названием `manual_20241104`, где цифры - текщая дата.
- `./zfs_send.zsh -rs 192.168.0.21 --snapshot man_2405` Полная резервная копия дата сета на сервер `192.168.0.21`. Будет создан снимок файловой системы с названием `man_2405`. Датасет будет
- `./zfs_send.zsh -i` Инерментная копия на сервер по умолчанию. Датасеты будут сопоставлены автоматически. Будет предложен выбор резервируемых датасетов.
## После запуска
Во время резервирования данных нельзя закрывать сессию пользователя. Иначе резервирование прервётся. Во время резервирования данных нельзя закрывать сессию пользователя. Иначе резервирование прервётся.
Само резервирование происходит в фоновом процессе. А в консоль выводится информация о процессе резервирования через команду `ps -u`. При прерывании этого процесса через Ctrl+C резервирование не прекращается. Если необходимо прервать резервирование, то нужно: Само резервирование происходит в фоновом процессе. А в консоль выводится информация о прогрессе резервирования через команду `ps -u`. При прерывании этого процесса через `Ctrl+C` резервирование не прекращается. Если необходимо прервать резервирование, то нужно:
1. `ps -u` узнать PID процесса zfs sends 1. `ps -u` узнать PID процесса zfs sends
`
2. `kill 12345` Завершить номер процесса 2. `kill 12345` Завершить номер процесса
или просто завершить сессию пользователя.