Настройка бекап на B2
https://www.backblaze.com/
- 1.
- 2.Активируйте B2 cloud storage для этого: Войдите в аккаунт -> My Settings -> Enabled Products -> [+] B2 Cloud Storage
- 3.Создаем basket куда будем сохранять:
- 4.После нужно создать App key который сможет только делать запись без возможности удалять уже созданный бекап к сожалению через панель это сделать не получится поэтому мы сделали готовый скрипт который умеет создавать безопасный ключ через API backblaze) Для этого необходимо:
- 1.Клонировать репо:cd /root/git clone https://gitlab.com/BoxExchanger-public/b2-backups.git
- 2.Перейти в папку с проектом:cd b2-backups
- 3.Установить пакеты:npm i
- 4.Получить Master KEY (после создания нужно сменить)
- 5.Создать ключ:npm run new-keyB2 application key ID: keyID полученный на предыдущем шаге B2 application key: applicationKey полученный на предыдущем шагеB2 buckets ID: Buckets -> Your bucket -> Bucket ID
- 6.Копируем полученные ключи для установки их на нашем сервере. (временно сохраняем их у себя в текстовом файле)
- 7.Пересоздаем ключ полученный на 4.4 шаге для того чтоб старый был более не доступен (копировать его уже не нужно)
- 5.
- 6.Установить полученные ключи на сервер для этого используем следующие команды:rclone configДалее нас запросит ответить на вопросы:e/n/d/r/c/s/q> nname> b2Storage> 5account> (App Key Id c шага 4.6)key> (App Key c шага 4.6)
- 7.Конфигурируем
backup.sh
для правильного создания бекап и уведомления администратора.cd /root/b2-backupsnano backup.shКонфигурируем блок# -- Configuration --
backup.sh# rclone remote name.RCLONE_REMOTE="b2"# b2 bucket name.B2_BUCKET="name-project"# Telegram Bot TokenBOT_TOKEN="1234567890:ABCDEF1234567890ABCDEF1234567890ABC"# (list) of Telegram Chat IDs.# e.g: CHAT_IDS=("1234567890" "0987654321")CHAT_IDS=("1234567890")Описание конфигураций: RCLONE_REMOTE - имя конфигурации rclone (6 шаг указали как name> b2) B2_BUCKET - имя корзины в BackBlaze (3 шаг) BOT_TOKEN - Токен телеграм бота полученный в @BotFather в котором вы нажали кнопку /start CHAT_IDS - ид клиентов telegram которые должны получать уведомление о бекап статусе получить свой ид можно в телеграм боте @myidbot - 8.Даем права на запуск bash-script файлу
backup.sh
chmod +x backup.shЕсли скрипт выполнил работу верно последняя строка будет:Backup completed successfully.
Также в .телеграм вам должно прийти сообщение:📦 Backup on
hostname
completed successfully.
- 9.Проверяем работу бекап скрипта./root/b2-backups/backup.sh
- 10.Устанавливаем авто бекап по крону (в примере каждый день в 4 ночи по времени сервера обычно по GMT)(crontab -l; echo "0 */4 * * * bash /root/b2-backups/backup.sh >> /tmp/bk.log 2>&1") | crontab -
Для работы скрипта необходимы права root.
По умолчанию скрипт ищет конфигурацию API в папке
/var/www/exchanger-api/config/app_config.json
.
Если у вас иной путь исправьте BOXEXCHANGER_API_PATH
в файле backup.sh
в разделе
# -- Init Default Vars --
В файле конфигурации обязательно должен быть uri к mongodb