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

212 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## НАЗВАНИЕ
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)