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

212 lines
12 KiB
Markdown
Raw Normal View History

2021-08-01 02:47:10 +03:00
## НАЗВАНИЕ
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)