Hetzner - DokuWiki

Tartarus Backup-Konfiguration/ru
(Die Seite wurde neu angelegt: „{{Languages|Tartarus Backup-Konfiguration}} == Резервное копирование с Tartarus == Tartarus это система резервного ко…“)
 
K
Zeile 3: Zeile 3:
 
== Резервное копирование с Tartarus ==
 
== Резервное копирование с Tartarus ==
  
Tartarus это система резервного копирования, базирующаяся на широко распространённых Unix утилитах, которые, в свою очередь, «заточены» под требования выделенного сервера.
+
Tartarus это система резервного копирования, базирующаяся на широко распространённых Unix утилитах, которые, в свою очередь, «заточены» под требования выделенного сервера.
  
 
== Установка ==
 
== Установка ==
  
Пользователи Debian могут легко установить программу с помощью пакетной системы и поддерживать актуальность её версий, добавив в конфигурацию APT следующую строку (например в ''/etc/apt/sources.list.d/tartarus.list''):
+
Пользователи Debian могут легко установить программу с помощью пакетной системы и поддерживать актуальность её версий, добавив в конфигурацию APT следующую строку (например, в ''/etc/apt/sources.list.d/tartarus.list''):
  
 
  deb [http://wertarbyte.de/apt/ http://wertarbyte.de/apt/] ./
 
  deb [http://wertarbyte.de/apt/ http://wertarbyte.de/apt/] ./
  
 
После выполнения «apt-get update», скрипт можно установить с помощью «apt-get install tartarus».
 
После выполнения «apt-get update», скрипт можно установить с помощью «apt-get install tartarus».
+
 
 
Нижеприведённых команд достаточно для импорта ключа GnuPG, который подпишет репозиторий, и установки программы:
 
Нижеприведённых команд достаточно для импорта ключа GnuPG, который подпишет репозиторий, и установки программы:
+
 
 
  wget -O /etc/apt/sources.list.d/wertarbyte.list [http://wertarbyte.de/apt/wertarbyte-apt.list http://wertarbyte.de/apt/wertarbyte-apt.list]
 
  wget -O /etc/apt/sources.list.d/wertarbyte.list [http://wertarbyte.de/apt/wertarbyte-apt.list http://wertarbyte.de/apt/wertarbyte-apt.list]
 
  wget -O - [http://wertarbyte.de/apt/software-key.gpg http://wertarbyte.de/apt/software-key.gpg] | apt-key add -
 
  wget -O - [http://wertarbyte.de/apt/software-key.gpg http://wertarbyte.de/apt/software-key.gpg] | apt-key add -
Zeile 28: Zeile 28:
 
Однако, рекомендуется всё-таки установка с помощью менеджера пакетов, так как при этом устанавливается самая актуальная версия.
 
Однако, рекомендуется всё-таки установка с помощью менеджера пакетов, так как при этом устанавливается самая актуальная версия.
  
При использовании современного дистрибутива Ubuntu (начиная с версии 10), могут возникать ошибки с curl и sftp, поэтому curl необходимо собрать отдельно. Инструкцию по сборке можно найти здесь: [[Curl fuer sftp/en|Curl с sftp]]
+
При использовании современного дистрибутива Ubuntu (начиная с версии 10), могут возникать ошибки с curl и sftp, поэтому curl необходимо собрать отдельно. Инструкцию по сборке можно найти здесь: [[Curl fuer sftp/en|Curl с sftp]]
  
 
== Настройка резервного копирования ==
 
== Настройка резервного копирования ==
Zeile 51: Zeile 51:
 
  # Способ архивирования
 
  # Способ архивирования
 
  COMPRESSION_METHOD="bzip2"
 
  COMPRESSION_METHOD="bzip2"
  # Размер LVM снап-шота
+
  # Размер LVM снапшота
 
  LVM_SNAPSHOT_SIZE="1000M"
 
  LVM_SNAPSHOT_SIZE="1000M"
  
Zeile 71: Zeile 71:
 
  # /etc/tartarus/root.conf
 
  # /etc/tartarus/root.conf
 
  #
 
  #
  # Чтение главного конфига
+
  # Чтение главного конфигурационного файла
 
  source /etc/tartarus/generic.inc
 
  source /etc/tartarus/generic.inc
 
  # Имя профиля
 
  # Имя профиля
Zeile 80: Zeile 80:
 
  # отделять несколько папок пробелом
 
  # отделять несколько папок пробелом
 
  EXCLUDE="/tmp/"
 
  EXCLUDE="/tmp/"
  # Без LVM снап-шота
+
  # Без LVM снапшота
 
  CREATE_LVM_SNAPSHOT="no"
 
  CREATE_LVM_SNAPSHOT="no"
  
Zeile 87: Zeile 87:
 
  /usr/sbin/tartarus /etc/tartarus/root.conf
 
  /usr/sbin/tartarus /etc/tartarus/root.conf
  
=== Копирование с LVM снап-шотами ===
+
=== Копирование с LVM снапшотами ===
  
LVM снап-шоты позволяют «заморозить» файловую систему во время выполнения операций. Система LVM создаёт виртуальное блочное устройство и хранит явные изменения в отдельном логическом томе.
+
LVM снапшоты позволяют «заморозить» файловую систему во время выполнения операций. Система LVM создаёт виртуальное блочное устройство и хранит явные изменения в отдельном логическом томе.
  
 
  # /etc/tartarus/home.conf
 
  # /etc/tartarus/home.conf
Zeile 96: Zeile 96:
 
  NAME="home"
 
  NAME="home"
 
  DIRECTORY="/home"
 
  DIRECTORY="/home"
  # Создать LVM снап-шот
+
  # Создать LVM снапшот
 
  CREATE_LVM_SNAPSHOT="yes"
 
  CREATE_LVM_SNAPSHOT="yes"
 
  # LVM том, хранящий данные файловой системы
 
  # LVM том, хранящий данные файловой системы
Zeile 103: Zeile 103:
 
  LVM_MOUNT_DIR="/home"
 
  LVM_MOUNT_DIR="/home"
  
Для интегрирования «сфотографированных» файловых систем, Tartarus использует ''/snap'': «замороженные» файловые системы прикрепляются к определённым под-директориям.
+
Для интегрирования «сфотографированных» файловых систем, Tartarus использует ''/snap'': «замороженные» файловые системы прикрепляются к определённым поддиректориям.
  
 
=== Инкрементные резервные копии ===
 
=== Инкрементные резервные копии ===
Zeile 115: Zeile 115:
 
  INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"
 
  INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"
  
После каждого успешного создания резервной копии, скрипт обновляет этот файл. Для создания инкрементной копии, запустите Tartarus с дополнительным параметром "-i":
+
После каждого успешного создания резервной копии, скрипт обновляет этот файл. Для создания инкрементной копии, запустите Tartarus с дополнительным параметром «-:
  
 
  /usr/sbin/tartarus -i /etc/tartarus/home.conf
 
  /usr/sbin/tartarus -i /etc/tartarus/home.conf
Zeile 145: Zeile 145:
  
 
В этом примере задано создание полной копии каждое воскресенье в 00:01, и инкрементной копии во все остальные дни.
 
В этом примере задано создание полной копии каждое воскресенье в 00:01, и инкрементной копии во все остальные дни.
+
 
 
== Восстановление ==
 
== Восстановление ==
  
Zeile 160: Zeile 160:
 
== Удаление старых копий ==
 
== Удаление старых копий ==
  
Если копии создаются регулярно, то вскоре выбирается квота FTP-сервера, поэтому старые копии должны всё время удаляться. Это можно делать автоматически с помощью «charon.ftp»:  
+
Если копии создаются регулярно, то вскоре выбирается квота FTP-сервера, поэтому старые копии должны всё время удаляться. Это можно делать автоматически с помощью «charon.ftp»:
 
Следующая команда проверяет на FTP-сервере все резервные копии профиля «home» на предмет их «срока годности». Выполнение с параметром «--dry-run» позволяет не удалять файлы.
 
Следующая команда проверяет на FTP-сервере все резервные копии профиля «home» на предмет их «срока годности». Выполнение с параметром «--dry-run» позволяет не удалять файлы.
 
+
 
 
  /usr/sbin/charon.ftp --host 1.2.3.4 \
 
  /usr/sbin/charon.ftp --host 1.2.3.4 \
 
  --user USERNAME \
 
  --user USERNAME \
Zeile 170: Zeile 170:
 
  --dry-run
 
  --dry-run
  
Charon удаляет все файлы, созданные более, чем 7 дней назад. Однако, это происходит только если не существует других инкрементных копий на основе этих файлов.
+
Charon удаляет все файлы, созданные более чем 7 дней назад. Однако это происходит только если не существует других инкрементных копий на основе этих файлов.
  
Для автоматической чистки FTP-сервера после успешного создания резервных сопий, используйте Tartarus hook. Следующие строки в настройках Tartarus (например в generic.inc), проверяют наличие неактуальных по дате архивов после каждого выполнения резервного копирования:
+
Для автоматической чистки FTP-сервера после успешного создания резервных копий, используйте Tartarus hook. Следующие строки в настройках Tartarus (например, в generic.inc), проверяют наличие неактуальных по дате архивов после каждого выполнения резервного копирования:
  
 
  # Чистка FTP сервера после резервного копирования
 
  # Чистка FTP сервера после резервного копирования
Zeile 183: Zeile 183:
 
  }
 
  }
  
Таким образом, скрипт считывает параметры непосредственно из конфигурации Tartarus. Для того, чтобы пароль не отображался в процессе, он подаётся на стандартный ввод.
+
Таким образом, скрипт считывает параметры непосредственно из конфигурации Tartarus. Для того чтобы пароль не отображался в процессе, он подаётся на стандартный ввод.
  
 
== Документация и контакты ==
 
== Документация и контакты ==

Version vom 5. September 2014, 08:19 Uhr

Inhaltsverzeichnis

Резервное копирование с Tartarus

Tartarus это система резервного копирования, базирующаяся на широко распространённых Unix утилитах, которые, в свою очередь, «заточены» под требования выделенного сервера.

Установка

Пользователи Debian могут легко установить программу с помощью пакетной системы и поддерживать актуальность её версий, добавив в конфигурацию APT следующую строку (например, в /etc/apt/sources.list.d/tartarus.list):

deb http://wertarbyte.de/apt/ ./

После выполнения «apt-get update», скрипт можно установить с помощью «apt-get install tartarus».

Нижеприведённых команд достаточно для импорта ключа GnuPG, который подпишет репозиторий, и установки программы:

wget -O /etc/apt/sources.list.d/wertarbyte.list http://wertarbyte.de/apt/wertarbyte-apt.list
wget -O - http://wertarbyte.de/apt/software-key.gpg | apt-key add -
apt-get update
apt-get install tartarus

Скрипт использует широкий спектр классических инструментов Unix, установленных в системе - если это не произошло автоматически, то установите их с помощью менеджера пакетов:

apt-get install tar bzip2 lvm2 gnupg curl

Если у вас не Debian (или не Ubuntu, например), то программу можно установить вручную, просто скачав её с сайта и распаковав файлы в /usr/local/.

Однако, рекомендуется всё-таки установка с помощью менеджера пакетов, так как при этом устанавливается самая актуальная версия.

При использовании современного дистрибутива Ubuntu (начиная с версии 10), могут возникать ошибки с curl и sftp, поэтому curl необходимо собрать отдельно. Инструкцию по сборке можно найти здесь: Curl с sftp

Настройка резервного копирования

Tartarus считывает свою конфигурацию из файлов, расположенных в /etc/tartarus/. Это набор shell-скриптов. используемые в процессе резервного копирования, поэтому также можно с помощью команды «source» добавить в профиль и другие конфигурационные файлы. Это может быть использовано для централизованного хранения общих для всех профилей резервного копирования настроек:

Общая конфигурация

# /etc/tartarus/generic.inc
# Общие настройки резервного копирования
# на FTP сервере в Hetzner
STORAGE_FTP_SSL_INSECURE="yes"
STORAGE_METHOD="FTP"
# Адрес FTP сервера
STORAGE_FTP_SERVER="1.2.3.4"
# FTP доступ
STORAGE_FTP_USER="12345"
STORAGE_FTP_PASSWORD="SecretPassword"
# Шифрованная передача и использование SFTP
STORAGE_FTP_USE_SFTP="yes"
# Способ архивирования
COMPRESSION_METHOD="bzip2"
# Размер LVM снапшота
LVM_SNAPSHOT_SIZE="1000M"
# Симметричное шифрование данных
ENCRYPT_SYMMETRICALLY="yes"
# Чтение пароля из /etc/tartarus/backup.sec
ENCRYPT_PASSPHRASE_FILE="/etc/tartarus/backup.sec"
# Во время настройки копирования
# не превышайте лимиты файловой системы
STAY_IN_FILESYSTEM="yes"

С такими настройками данные шифруются с паролем, считываемым из файла /etc/tartarus/backup.sec. Содержимое файла будет необходимо позже, для распаковки архивов. Поэтому содержимое необходимо хранить в безопасности (возможно также и в распечатанном виде).

Простое резервное копирование

Простой профиль резервного копирования для безопасности корневой файловой системы может выглядеть так:

# /etc/tartarus/root.conf
#
# Чтение главного конфигурационного файла
source /etc/tartarus/generic.inc
# Имя профиля
NAME="root"
# Директория / Резервная копия
DIRECTORY="/"
# Не делать копии временных файлов
# отделять несколько папок пробелом
EXCLUDE="/tmp/"
# Без LVM снапшота
CREATE_LVM_SNAPSHOT="no"

Просто начните копирование, запустив:

/usr/sbin/tartarus /etc/tartarus/root.conf

Копирование с LVM снапшотами

LVM снапшоты позволяют «заморозить» файловую систему во время выполнения операций. Система LVM создаёт виртуальное блочное устройство и хранит явные изменения в отдельном логическом томе.

# /etc/tartarus/home.conf
source /etc/tartarus/generic.inc
NAME="home"
DIRECTORY="/home"
# Создать LVM снапшот
CREATE_LVM_SNAPSHOT="yes"
# LVM том, хранящий данные файловой системы
LVM_VOLUME_NAME="/dev/volumegroup/home"
# Точка монтирования для файловой системы
LVM_MOUNT_DIR="/home"

Для интегрирования «сфотографированных» файловых систем, Tartarus использует /snap: «замороженные» файловые системы прикрепляются к определённым поддиректориям.

Инкрементные резервные копии

Инкрементные резервные копи сохраняют только изменения по сравнению с последней версией резервной копии, вместо копирования вновь целой файловой системы. Tartarus создаёт файлы-метки, для определения точной даты последнего резервного копирования. Для выполнения инкрементного копирования, вам сначала необходимо создать директорию для хранения этих файлов:

mkdir -p /var/spool/tartarus/timestamps/

В профилях конфигурации теперь есть следующая строка (с соответствующим именем файла):

INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"

После каждого успешного создания резервной копии, скрипт обновляет этот файл. Для создания инкрементной копии, запустите Tartarus с дополнительным параметром «-i»:

/usr/sbin/tartarus -i /etc/tartarus/home.conf

Автоматическое резервное копирование

В типичной системе есть несколько файлов резервного копирования в директории /etc/tartarus/; для их автоматического вызова, используйте следующий скрипт:

#!/bin/sh
# /usr/local/sbin/backup.sh
# Выполнить все профили в /etc/tartarus/ и передать
# аргументы командной строки tartarus (например -i)
for profile in /etc/tartarus/*.conf; do
 /usr/sbin/tartarus $* "$profile"
done

Теперь скрипт можно выполнить с или без параметров, задав создание полных или инкрементных резервных копий:

/usr/local/sbin/backup.sh # полное копирование
/usr/local/sbin/backup.sh -i # инкрементное копирование

Команда «crontab -e» редактирует crontab для пользователя root:

PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/:/usr/local/sbin/:/usr/local/bin
# m    h       dom     mon     dow     command
0      1       *       *       mon-sat /usr/local/sbin/backup.sh -i
0      1       *       *       sun     /usr/local/sbin/backup.sh

В этом примере задано создание полной копии каждое воскресенье в 00:01, и инкрементной копии во все остальные дни.

Восстановление

Так как Tartarus работает на основе простых Unix-утилит, резервную копию просто восстановить из Rescue-системы. Чтобы отобразить файлы резервной копии, используйте следующую команду:

curl [[Ftp: |
gpg --decrypt | tar tpvj

Для распаковки архива в директории /mnt/restore введите следующую команду:

curl [[Ftp: |
gpg --decrypt | tar xpvj -C /mnt/restore

Удаление старых копий

Если копии создаются регулярно, то вскоре выбирается квота FTP-сервера, поэтому старые копии должны всё время удаляться. Это можно делать автоматически с помощью «charon.ftp»: Следующая команда проверяет на FTP-сервере все резервные копии профиля «home» на предмет их «срока годности». Выполнение с параметром «--dry-run» позволяет не удалять файлы.

/usr/sbin/charon.ftp --host 1.2.3.4 \
--user USERNAME \
--password PASSWORD \
--profile home \
--maxage 7 \
--dry-run

Charon удаляет все файлы, созданные более чем 7 дней назад. Однако это происходит только если не существует других инкрементных копий на основе этих файлов.

Для автоматической чистки FTP-сервера после успешного создания резервных копий, используйте Tartarus hook. Следующие строки в настройках Tartarus (например, в generic.inc), проверяют наличие неактуальных по дате архивов после каждого выполнения резервного копирования:

# Чистка FTP сервера после резервного копирования
TARTARUS_POST_PROCESS_HOOK() {
   echo -n "$STORAGE_FTP_PASSWORD" | /usr/sbin/charon.ftp \
   --host "$STORAGE_FTP_SERVER" \
   --user "$STORAGE_FTP_USER" --readpassword \
   --maxage 7 \
   --dir "$STORAGE_FTP_DIR" --profile "$NAME"
}

Таким образом, скрипт считывает параметры непосредственно из конфигурации Tartarus. Для того чтобы пароль не отображался в процессе, он подаётся на стандартный ввод.

Документация и контакты

Подробную информацию по Tartarus можно найти на странице проекта, там же можно найти документацию программы и лист почтовой рассылки.

Зарегистрируйтесь там, чтобы отправлять отчёты об ошибках скрипта, участвовать в проекте и просто, быть информированным о новшествах проекта.



© 2020. Hetzner Online GmbH. Alle Rechte vorbehalten.