From 7658041e3d49378d872c992ce331504b94f18f1b Mon Sep 17 00:00:00 2001 From: pankovea Date: Fri, 8 Nov 2024 15:45:26 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20README.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 51 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index aef1fbc..5297d7d 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,46 @@ # Скрипт для резервирования данных Скрипт используется для резервирования датасетов файловой системы zfs. Необходим запуск от суперпользователя. + ## Флаги Используемая оболочка: 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 -./zfs_send.zsh --r|--backup-server IP адрес или доменное имя сервера для резервирования --г|--baсkup-user Пользователь SSH на удалённом сервер (по умолчанию root) --s|--snapshot Задать имя снимка для резервирования --i|--incremental Режим резервирования (по умолчанию полная копия) -``` - -Ожидается что доступ по SSH на удалённую машину уже настроен +Ожидается, что доступ по 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 -` 2. `kill 12345` Завершить номер процесса +или просто завершить сессию пользователя. \ No newline at end of file