From 37581ae96167054bef26951defaf355641ba2494 Mon Sep 17 00:00:00 2001 From: ge Date: Mon, 16 May 2022 22:30:18 +0300 Subject: [PATCH] feat: Rename Baf to boring-backup --- Makefile | 6 ++--- docs/{baf.1.rst => boring-backup.1.rst} | 36 ++++++++++++++----------- src/{bafscript => boring-backup} | 10 +++---- 3 files changed, 29 insertions(+), 23 deletions(-) rename docs/{baf.1.rst => boring-backup.1.rst} (86%) rename src/{bafscript => boring-backup} (95%) diff --git a/Makefile b/Makefile index 0c150be..382db4c 100644 --- a/Makefile +++ b/Makefile @@ -23,13 +23,13 @@ tests: for test in $(tests_dir)/*.bats; do bats --verbose-run --print-output-on-failure "$$test"; done lint: - shellcheck $(src_dir)/baf || true + shellcheck $(src_dir)/boring-backup || true shellcheck $(src_dir)/lib/* || true docs: builddir # See rst2man(1), rst2html(1), https://docutils.sourceforge.io/docs/index.html - rst2man $(docs_dir)/baf.1.rst | gzip -9 > $(docs_build_dir)/baf.1.gz - rst2html $(docs_dir)/baf.1.rst > $(docs_build_dir)/baf.1.html + rst2man $(docs_dir)/boring-backup.1.rst | gzip -9 > $(docs_build_dir)/boring-backup.1.gz + rst2html $(docs_dir)/boring-backup.1.rst > $(docs_build_dir)/boring-backup.1.html builddir: mkdir -p $(build_dir) diff --git a/docs/baf.1.rst b/docs/boring-backup.1.rst similarity index 86% rename from docs/baf.1.rst rename to docs/boring-backup.1.rst index 747fbe9..66d8698 100644 --- a/docs/baf.1.rst +++ b/docs/boring-backup.1.rst @@ -1,6 +1,6 @@ -=== -baf -=== +============= +boring-backup +============= --------------------------- backup files and databases. @@ -15,12 +15,12 @@ backup files and databases. Синопсис -------- -``baf`` [-cvlhV] FILE.. +``boring-backup`` [-cvlhV] FILES.. Описание -------- -Baf (Backup Automation Micro-framework) - это расширяемая утилита для резервного копирования на основе сценариев Bash. По умолчанию предусмотрено создание резервных копий файлов с помощью ``tar`` и дампов баз данных MySQL/MariaDB и PostgreSQL. +boring-backup - это расширяемая утилита для резервного копирования на основе сценариев Bash. По умолчанию предусмотрено создание резервных копий файлов с помощью ``tar`` и дампов баз данных MySQL/MariaDB и PostgreSQL. Опции ----- @@ -34,7 +34,7 @@ Baf (Backup Automation Micro-framework) - это расширяемая утил Быстрый старт ------------- -Baf можно рассматривать как небольшой фреймворк или библиотеку для создания сценариев резервного копирования. Baf не реализует собственный язык сценариев, а полагается на Bash. В любом варианте применения утилита требует написания сценария для выполнения бэкапа. +boring-backup можно рассматривать как небольшой фреймворк/библиотеку для создания сценариев резервного копирования. boring-backup не реализует собственный язык сценариев, а полагается на Bash. В любом варианте применения утилита требует написания сценария для выполнения бэкапа. В сценариях можно использовать переменные и функции. Сценарий импортируется в основной скрипт с помощью команды ``source`` (см. ``bash``\(1) п. SHELL BUILTIN COMMANDS). @@ -43,7 +43,7 @@ Baf можно рассматривать как небольшой фреймв sources=('file:/home/user') targets=('file:/var/backup') -Здесь массивы `sources` и `targets` определяют точки или поинты (`points`) резервного копирования — источники (`sources`) и назначения (`targets`). Это основные сущности, с которыми работает Baf. Вот некоторые особенности поинтов: +Здесь массивы `sources` и `targets` определяют точки или поинты (`points`) резервного копирования — источники (`sources`) и назначения (`targets`). Это основные сущности, с которыми работает boring-backup. Вот некоторые особенности поинтов: - Все поинты указываются в формате URI. Описание URI также есть в этой документации ниже. - Поинты могут указывать как на локальные (размещённые на текущей машине), так и на удалённые (размещённые на удалённой машине) ресурсы. @@ -104,9 +104,9 @@ file file:/var/www/html file:///home/jhon/cool_stuff.txt - + Не используйте двойной слэш для этой схемы, используйте один или три слэша. Двойной слэш означает наличие компонента Authority, это приводит к неверной интерпретации адреса. - + См. также ``backup_files()`` mysql @@ -116,7 +116,7 @@ mysql С помощью утилиты ``mysqldump``\(1) формируется дамп в формате SQL, файл по умолчанию сжимается утилитой ``gzip``. - См. также ``backup_mysql()`` + См. также ``backup_mysql()`` postgres Аналогично `mysql`, но для PostgreSQL. Для создания дампа используется ``pg_dump``\(1), файлы по умолчанию сохраняются с расширением .psql.gz. @@ -125,7 +125,7 @@ postgres sqlite Схема для баз данных SQLite. Ничем не отличается от `file`, добавлена для наглядного обозначения, что источником является БД SQLite, а не иной файл. - + См. также ``backup_sqlite()`` Схемы, которые могут быть использованы как targets @@ -162,7 +162,7 @@ dav, davs Создание резервных копий ------------------------ -Baf предполагает, что для всех резервных копий необходимо создавать архивы. Поэтому вам нужно следить за тем, чтобы в локальном хранилище всегда хватало дискового пространства для создания новых архивов. Baf также не удаляет старые архивы и вам также надо позаботиться об удалении устаревших резервных копий. Изменить это поведение можно с помощью пользовательских функций в сценариях. В этом разделе речь пойдёт о поведении, которое установлено по умолчанию. См. функции ``builtin_backup()``, ``process_sources()``, ``process_targets()``. +boring-backup предполагает, что для всех резервных копий необходимо создавать архивы. Поэтому вам нужно следить за тем, чтобы в локальном хранилище всегда хватало дискового пространства для создания новых архивов. boring-backup также не удаляет старые архивы и вам также надо позаботиться об удалении устаревших резервных копий. Изменить это поведение можно с помощью пользовательских функций в сценариях. В этом разделе речь пойдёт о поведении, которое установлено по умолчанию. См. функции ``builtin_backup()``, ``process_sources()``, ``process_targets()``. Базовая концепция строится на том, что существует несколько точек источников и несколько точек назначения. Создаётся резервная копия источника и копируется в точку назначения. @@ -179,7 +179,7 @@ Baf предполагает, что для всех резервных копи 'ftp://jhon:%24t%D0%AFo%7C%5C%7C6@[fe80::5054:ff:fe24:382]:2021/backups/' ) -Здесь будут созданы архивы файлов и базы данных и сохранены в локальную директорию /var/backup. Затем эти файлы будут переданы по протоколу FTP на сервер fe80::5054:ff:fe24:382 в директорию /backups. Файлы из директории /var/backup не будут удалены или перемещены. Если добавить дополнительную точку назначения, то файлы из /var/backup будут скопированы и туда. Обратите внимание, что Baf не выполняет повторного создания архивов для каждой точки назначения — архивы создаются один раз и далее распространяются по всем указанным назначениям. Если в массиве `targets` имеется несколько точек назначения со схемой `file`, то архивы будут сохранены в первую по порядку точку, а затем скопированы оттуда в остальные. +Здесь будут созданы архивы файлов и базы данных и сохранены в локальную директорию /var/backup. Затем эти файлы будут переданы по протоколу FTP на сервер fe80::5054:ff:fe24:382 в директорию /backups. Файлы из директории /var/backup не будут удалены или перемещены. Если добавить дополнительную точку назначения, то файлы из /var/backup будут скопированы и туда. Обратите внимание, что boring-backup не выполняет повторного создания архивов для каждой точки назначения — архивы создаются один раз и далее распространяются по всем указанным назначениям. Если в массиве `targets` имеется несколько точек назначения со схемой `file`, то архивы будут сохранены в первую по порядку точку, а затем скопированы оттуда в остальные. Резервное копирование на удалённое хранилище -------------------------------------------- @@ -204,7 +204,7 @@ WebDAV Переменные ---------- -Baf условно разделяет переменные на "внутренние" ("защищённые") и "обычные". К "защищённым" переменным относятся все перемеменные, имена которых начинаются с двух знаков подчёркивания, например: ``__main_target``. Все остальные переменные считаются "обычными". +boring-backup условно разделяет переменные на "внутренние" ("защищённые") и "обычные". К "защищённым" переменным относятся все перемеменные, имена которых начинаются с двух знаков подчёркивания, например: ``__main_target``. Все остальные переменные считаются "обычными". Обычные переменные могут быть перезаписаны в пользовательском скрипте. Защищённые переменные технически ничем от них не отличаются, однако не нужно переопределять такие переменные в пользовательском скрипте, так как это может привести к неожиданным ошибкам во время выполнения скрипта. Точно также очень внимательно нужно относится к перезаписи обычных переменных — в обоих случаях есть риск что-то поломать. @@ -297,7 +297,7 @@ Baf условно разделяет переменные на "внутрен ``err [-eao] MESSAGE`` Печатает сообщение об ошибке MESSAGE на экран и в лог и выполняет обработку ошибок. - + -e Выйти из скрипта с кодом выхода 1. -a Добавить сообщение MESSAGE в массив ``errors``. -o Вызвать функцию ``on_error()``. @@ -367,6 +367,12 @@ Baf условно разделяет переменные на "внутрен Использование функций в сценариях --------------------------------- +Переменные окружения +-------------------- + +``BBLIB`` + Путь до библиотеки функций boring-backup. + Примеры ------- См. также diff --git a/src/bafscript b/src/boring-backup similarity index 95% rename from src/bafscript rename to src/boring-backup index 078b62c..f71338e 100755 --- a/src/bafscript +++ b/src/boring-backup @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# bafscript -- backup automation micro-framework. +# boring-backup -- backup automation micro-framework and library. # Copyright (c) 2022 ge # # This program is free software: you can redistribute it and/or modify @@ -25,8 +25,8 @@ __tar_options='-acf' __tar_compression='gzip' __name_date_fmt='_%Y%m%d-%H%M' -if [ -n "$BAFLIB" ]; then - __library="$BAFLIB" +if [ -n "$BBLIB" ]; then + __library="$BBLIB" else __library='./lib' fi @@ -40,7 +40,7 @@ print_help() { cat <<- EOF Backup files and databases. -Usage: $0 [-cvlhV] ARGUMENTS.. +Usage: $0 [-cvlhV] FILES.. Options: -c, --config config file. @@ -50,7 +50,7 @@ Options: -V, --version print version and exit. Environment: - BAFLIB path to baf library [current: $__library] + BBLIB path to bb library [current: $__library] EOF }