Hetzner - DokuWiki

Tartarus Backup-Konfiguration/ru
K
(proofreading)
Zeile 3: Zeile 3:
 
== Резервное копирование с Tartarus ==
 
== Резервное копирование с Tartarus ==
  
Tartarus это система резервного копирования, базирующаяся на широко распространённых Unix утилитах, которые, в свою очередь, «заточены» под требования выделенного сервера.
+
Tartarus это система резервного копирования, базирующаяся на широко распространённых Unix-утилитах, которые, в свою очередь, «заточены» под требования выделенного сервера.
  
 
== Установка ==
 
== Установка ==
Zeile 13: Zeile 13:
 
После выполнения «apt-get update», скрипт можно установить с помощью «apt-get install tartarus».
 
После выполнения «apt-get update», скрипт можно установить с помощью «apt-get install tartarus».
  
Нижеприведённых команд достаточно для импорта ключа GnuPG, который подпишет репозиторий, и установки программы:
+
Ниже приведена последовательность команд, обеспечивающих подключение репозитория tartarus и его установку:
  
 
  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]
Zeile 20: Zeile 20:
 
  apt-get install tartarus
 
  apt-get install tartarus
  
Скрипт использует широкий спектр классических инструментов Unix, установленных в системе - если это не произошло автоматически, то установите их с помощью менеджера пакетов:
+
Скрипт использует широкий спектр классических инструментов Unix, установленных в системе если это не произошло автоматически, то установите их с помощью менеджера пакетов:
  
 
  apt-get install tar bzip2 lvm2 gnupg curl
 
  apt-get install tar bzip2 lvm2 gnupg curl
  
Если у вас не Debian (или не Ubuntu, например), то программу можно установить вручную, просто [http://wertarbyte.de/tartarus/ скачав её с сайта] и распаковав файлы в ''/usr/local/''.
+
Если у вас не Debian (или не Ubuntu), то программу можно установить вручную, просто [http://wertarbyte.de/tartarus/ скачав её с сайта] и распаковав файлы в ''/usr/local/''.
  
 
Однако, рекомендуется всё-таки установка с помощью менеджера пакетов, так как при этом устанавливается самая актуальная версия.
 
Однако, рекомендуется всё-таки установка с помощью менеджера пакетов, так как при этом устанавливается самая актуальная версия.
  
При использовании современного дистрибутива Ubuntu (начиная с версии 10), могут возникать ошибки с curl и sftp, поэтому curl необходимо собрать отдельно. Инструкцию по сборке можно найти здесь: [[Curl fuer sftp/en|Curl с sftp]]
+
При использовании современного дистрибутива Ubuntu (начиная с версии 10), могут возникать ошибки с curl и sftp, поэтому curl необходимо собрать отдельно. Инструкцию по сборке можно найти здесь: [[Curl fuer sftp/en|Curl for sftp]]
  
 
== Настройка резервного копирования ==
 
== Настройка резервного копирования ==
  
Tartarus считывает свою конфигурацию из файлов, расположенных в ''/etc/tartarus/''. Это набор shell-скриптов. используемые в процессе резервного копирования, поэтому также можно с помощью команды «source» добавить в профиль и другие конфигурационные файлы. Это может быть использовано для централизованного хранения общих для всех профилей резервного копирования настроек:
+
Tartarus считывает свою конфигурацию из файлов, расположенных в ''/etc/tartarus/''. Это набор shell-скриптов, используемых в процессе резервного копирования. Поэтому другие конфигурационные файлы можно добавить в профиль с помощью команды «source». Это может быть использовано для централизованного хранения общих для всех профилей настроек резервного копирования:
  
 
=== Общая конфигурация ===
 
=== Общая конфигурация ===
Zeile 63: Zeile 63:
 
  STAY_IN_FILESYSTEM="yes"
 
  STAY_IN_FILESYSTEM="yes"
  
С такими настройками данные шифруются с паролем, считываемым из файла ''/etc/tartarus/backup.sec''. Содержимое файла будет необходимо позже, для распаковки архивов. Поэтому содержимое необходимо хранить в безопасности (возможно также и в распечатанном виде).
+
С такими настройками данные шифруются с паролем, считываемым из файла ''/etc/tartarus/backup.sec''. Содержимое этого файла также требуется для распаковки архивов. Поэтому содержимое необходимо хранить в безопасности (возможно также и в распечатанном виде).
  
 
=== Простое резервное копирование ===
 
=== Простое резервное копирование ===
Zeile 78: Zeile 78:
 
  DIRECTORY="/"
 
  DIRECTORY="/"
 
  # Не делать копии временных файлов
 
  # Не делать копии временных файлов
  # отделять несколько папок пробелом
+
  # несколько директорий отделяются пробелом
 
  EXCLUDE="/tmp/"
 
  EXCLUDE="/tmp/"
 
  # Без LVM снапшота
 
  # Без LVM снапшота
Zeile 103: Zeile 103:
 
  LVM_MOUNT_DIR="/home"
 
  LVM_MOUNT_DIR="/home"
  
Для интегрирования «сфотографированных» файловых систем, Tartarus использует ''/snap'': «замороженные» файловые системы прикрепляются к определённым поддиректориям.
+
Для монтирования снапшотов Tartarus использует ''/snap''. «Замороженные» файловые системы монтируются в отдельные поддиректории.
  
 
=== Инкрементные резервные копии ===
 
=== Инкрементные резервные копии ===
  
Инкрементные резервные копи сохраняют только изменения по сравнению с последней версией резервной копии, вместо копирования вновь целой файловой системы. Tartarus создаёт файлы-метки, для определения точной даты последнего резервного копирования. Для выполнения инкрементного копирования, вам сначала необходимо создать директорию для хранения этих файлов:
+
Инкрементные резервные копи сохраняют только изменения по сравнению с последней версией резервной копии, вместо копирования целой файловой системы. Tartarus создаёт файлы-метки, для определения точной даты последнего резервного копирования. Для выполнения инкрементного копирования, вам сначала необходимо создать директорию для хранения этих файлов:
  
 
mkdir -p /var/spool/tartarus/timestamps/
 
mkdir -p /var/spool/tartarus/timestamps/
  
В профилях конфигурации теперь есть следующая строка (с соответствующим именем файла):
+
В профилях конфигурации добавьте слудующую строку (с соответствующим именем файла):
  
 
  INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"
 
  INCREMENTAL_TIMESTAMP_FILE="/var/spool/tartarus/timestamps/home"
Zeile 131: Zeile 131:
 
  done
 
  done
  
Теперь скрипт можно выполнить с или без параметров, задав создание полных или инкрементных резервных копий:
+
Теперь скрипт можно выполнить с параметрами или без них, задав создание инкрементных или полных резервных копий:
  
 
  /usr/local/sbin/backup.sh # полное копирование
 
  /usr/local/sbin/backup.sh # полное копирование
Zeile 137: Zeile 137:
 
  /usr/local/sbin/backup.sh -i # инкрементное копирование
 
  /usr/local/sbin/backup.sh -i # инкрементное копирование
  
Команда «crontab -e» редактирует crontab для пользователя root:
+
Команда «crontab -e» редактирует crontab для текущего пользователя:
  
 
  PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/:/usr/local/sbin/:/usr/local/bin
 
  PATH=/bin/:/sbin/:/usr/bin/:/usr/sbin/:/usr/local/sbin/:/usr/local/bin
Zeile 144: Zeile 144:
 
  0      1      *      *      sun    /usr/local/sbin/backup.sh
 
  0      1      *      *      sun    /usr/local/sbin/backup.sh
  
В этом примере задано создание полной копии каждое воскресенье в 00:01, и инкрементной копии во все остальные дни.
+
В этом примере задано создание полной копии каждое воскресенье в 01:00, и инкрементной копии во все остальные дни.
  
 
== Восстановление ==
 
== Восстановление ==
  
Так как Tartarus работает на основе простых Unix-утилит, резервную копию просто восстановить из Rescue-системы. Чтобы отобразить файлы резервной копии, используйте следующую команду:
+
Так как Tartarus работает на основе простых Unix-утилит, резервную копию просто восстановить из Rescue-системы. Чтобы посмотреть список файлов в резервной копии, используйте следующую команду:
  
 
  curl [[Ftp: |
 
  curl [[Ftp: |
Zeile 160: Zeile 160:
 
== Удаление старых копий ==
 
== Удаление старых копий ==
  
Если копии создаются регулярно, то вскоре выбирается квота FTP-сервера, поэтому старые копии должны всё время удаляться. Это можно делать автоматически с помощью «charon.ftp»:
+
Если копии создаются регулярно, то вскоре выбирается квота FTP-сервера, поэтому старые копии должны также регулярно удаляться. Это можно делать автоматически с помощью «charon.ftp».
 
Следующая команда проверяет на FTP-сервере все резервные копии профиля «home» на предмет их «срока годности». Выполнение с параметром «--dry-run» позволяет не удалять файлы.
 
Следующая команда проверяет на FTP-сервере все резервные копии профиля «home» на предмет их «срока годности». Выполнение с параметром «--dry-run» позволяет не удалять файлы.
  
Zeile 183: Zeile 183:
 
  }
 
  }
  
Таким образом, скрипт считывает параметры непосредственно из конфигурации Tartarus. Для того чтобы пароль не отображался в процессе, он подаётся на стандартный ввод.
+
Таким образом, скрипт считывает параметры непосредственно из конфигурации Tartarus. Для того чтобы пароль не отображался в списке процессов, он подаётся на стандартный ввод.
  
 
== Документация и контакты ==
 
== Документация и контакты ==
  
Подробную информацию по Tartarus можно найти на [http://wertarbyte.de/tartarus.shtml странице проекта], там же можно найти [http://wertarbyte.de/tartarus/doc/ документацию] программы и [http://listen.wertarbyte.de/cgi-bin/mailman/listinfo/tartarus лист почтовой рассылки].
+
Подробную информацию по Tartarus можно найти на [http://wertarbyte.de/tartarus.shtml странице проекта], там же можно найти [http://wertarbyte.de/tartarus/doc/ документацию] программы и [http://listen.wertarbyte.de/cgi-bin/mailman/listinfo/tartarus список рассылки].
  
 
Зарегистрируйтесь там, чтобы отправлять отчёты об ошибках скрипта, участвовать в проекте и просто, быть информированным о новшествах проекта.
 
Зарегистрируйтесь там, чтобы отправлять отчёты об ошибках скрипта, участвовать в проекте и просто, быть информированным о новшествах проекта.

Version vom 5. September 2014, 08:51 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».

Ниже приведена последовательность команд, обеспечивающих подключение репозитория tartarus и его установку:

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 for 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 для текущего пользователя:

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

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

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

Так как 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.