This repository has been archived on 2022-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
baka/manpage.ru.md
2021-08-01 02:47:10 +03:00

12 KiB
Raw Blame History

НАЗВАНИЕ

baka - создание резервных копий файлов и баз данных.

ОБЗОР

baka [--version | -V] [--help | help] <command> [<options>...]

ОПИСАНИЕ

baka позволяет создавать резервные копии каталогов и баз данных MariaDB/MySQL и PostgreSQL.

Работа baka базируется на обработке записей (entries). Обработка может быть запущена сразу для всех записей, либо только для выбранных, либо для всех, кроме исключенных.

baka реализует только механизм создания архивов с файлами и дампами баз данных и передачи этих файлов в удаленное хранилище с помощью сторонних инструментов (таких как rsync, s3cmd). Для выполнения резервного копирования по расписанию, команду baka рекомендуется установить в планировщике задач операционной системы. Например cron. Примеры использования находятся в разделе ПРИМЕРЫ.

Из вышеперечисленных пунктов и возможности настройки отдельной записи следует, что с помощью baka можно довольно гибко настроить систему резервного копирования.

ВНИМАНИЕ: Несмотря на красивое описание выше, baka не следует рассматривать как профессиональные решения для резервного копирования. Пожалуйста, не используйте baka в продакшн среде.

Основные понятия:

Entry

Сущность, описывающая элементы, с которыми нужно выполнять действия. Таких сущностей может быть любое количество. Более подробное описание см. В разделе КОНФИГУРАЦИОННЫЕ ФАЙЛЫ.

Remote transport

Способ доставки файлов в удаленное хранилище. В версии 0.1 это может быть синхронизация с помощью rsync, загрузка файлов в S3-совместимое хранилище с помощью утилиты s3cmd или «none», что означает отказ от загрузки файлов в удаленное хранилище.

КОМАНДЫ

backup

Сделать резервную копию прямо сейчас. Доступные опции:

-i, --ignore=<entry>    запустить резервное копирование для всех записей,
                        кроме игнорируемых.
-e, --entry=<entry>     запустить резервное копирование выбранной записи.
--local                 принудительное локальное резервное копирование.
--no-verify             не проверять целостность архивов.
--remove                удалить старые резервные копии (принудительно).
--help, help            напечатать справочное сообщение и выйти.

list

Список доступных entries. Доступные опции:

-v, --verbose           выводить список записей подробно (по умолчанию).
-s, --short             короткий формат (имена).
-S                      короткий формат (пути).
--help, help            напечатать справочное сообщение и выйти.

test

Проверка конфигурации main.conf и всех entries. Доступные опции:

-v, --verbose           выводить на печать подробный вывод.
--help, help            напечатать справочное сообщение и выйти.

show

Распечатать основную конфигурацию (main.conf).

edit

Открыть main.conf в текстовом редакторе по умолчанию.

remove

Удалить старые локальные резервные копии (старше чем $livetime дней). Время жизни резервной копии устанавливается в main.conf.

-f, --force             удалить без подтверждения.
--help, help            напечатать справочное сообщение и выйти.

КОНФИГУРАЦИОННЫЕ ФАЙЛЫ

MAIN.CONF

Путь к файлу: /etc/baka/main.conf. Он содержит значения для глобальных настроек baka.

Обязательные параметры:

 log            файл лога (/var/log/baka).
 log_df         формат времени в логе. Пример: %d %b %Y %T %z
                Подробнее в 'man date'.
 log_format     формат строки лога. Имеет специальный синтаксис.
                Пример:
                    [%time] %log
                Здесь:
                    %time   время, отформатирвованное по 'log_df'.
                    %log    строка с данными
 df             формат времени в именах файлов. См. 'man date'
 nf             формат имён файлов. Имеет специальный синтаксис.
                Пример:
                    %type_%name_%time
                Здесь:
                    %type   тип содержимого. К имени архива будет
                            добавлено слово 'dump' для базы данных
                            или 'backup' для файлов.
                    %name   имя директории или базы данных.
                    %time   время, отформатированное по 'df'.
 remote         remote transport.
 livetime       время жизни старых бэкапов (количество дней).

Опциональные параметры:

allow_commands  флаг для выполнения команд из entries.
                По-умолчанию: отключено
ssh_uri         URI для подключения по SSH для rsync.
ssh_port        указать порт, если отличается от стандартного 22.
s3_uri          URI для подключения к хранилищу S3.
local           локальная папка для сохранения всех бэкапов. Все
                'dest' в entries будут проигнорированы.

ЗАПИСИ (ENTRIES)

Записи хранятся в каталоге /etc/baka/entries/ в отдельных файлах. Имя файла значения не имеет.

В них вы можете установить параметры резервного копирования нужного набора данных. См. примеры ниже.

DESTINATION DIR

Локальная целевая папка. В неё будут сохранены данные, которые описаны в записи. Это обязательный параметр. Он будет использоваться, если параметр local не указан в main.conf. Вы можете указать его только один раз в записи.

Это единственный обязательный параметр. И единственный, который можно указать только один раз. В дополнение к целевой папке должна быть указана хотя бы одна переменная с данными.

Пример:

dest = /home/user/backups

FILES

Файлы или каталоги для резервного копирования. Синтаксис:

files = /path

Также вы можете сделать так:

files = /path/1 /path/2

Вы можете добавлять переменную files сколько угодно раз.

EXCLUSIONS

Этот параметр является дополнением к параметру files. С его помощью вы можете указать, какие файлы или папки следует исключить из резервной копии.

Перечислить файлы и папки через запятую без пробелов в одной строке:

exclude = env,logs,__ pycache__

Или разделите их на несколько строк:

exclude = env
exclude = logs
exclude = __pycache__

DATABASES

baka может сделать базы данных MariaDB/MySQL (ярлык mysql) и PostgreSQL (ярлык postgres).

Синтаксис:

[dmbs] = host:port:database:user:password

Например:

postgres = localhost:5432:mydb:user:password

Вы также можете использовать сокращенный синтаксис (используйте стандартный хост и порт):

[dmbs] = host:database:user:password
[dmbs] = database:user:password

ПРИМЕЧАНИЕ: Из-за особенностей парсера двоеточия и символы решетки не могут использоваться в пароле базы данных.

COMMANDS

Помимо файлов и баз данных, baka может выполнять для вас произвольную команду Bash. Например:

command = echo "Привет, мир!"

Эта функция отключена по умолчанию и может быть включена в main.conf. НЕ ИСПОЛЬЗУЙТЕ НЕДОВЕРЕННЫЕ КОМАНДЫ В ENTRY! Эта функция потенциально опасна. Убедитесь, что доступ к записям ограничен.

ПРИМЕРЫ

Пример использования baka. Например, есть два файла в /etc/baka/entries: example.org и example.com. Содержимое файлов:

example.org:

dest = /home/user/backups/example.org
files = /srv/example.org/public
exclude = logs,cache

example.com:

dest = /home/user/backups/example.com
files = /srv/example.org/public
files = /srv/example.org/storage
mysql = mydb:dbuser:password

Для того, чтобы заапускать резервное копирование этих сайтов в разное время, добавим в crontab две задачи:

00 00 * * *     /usr/bin/baka backup --entry=example.com
00 00 */2 * *   /usr/bin/baka backup --entry=example.org

Точно таким же образом можно запускать резервное копирование большего числа entries, добавляя исключения или указывая конкретные entries. Например так:

baka backup --ignore=example.org --ignore=example.com

ОШИБКИ

Сообщайте об ошибках на gechandev@gmail.com или https://gitea.gch.icu/gd/baka ё

АВТОР

gd (gechandev@gmail.com)