infra/_scripts/backup/YANDEX-DISK-SETUP.md

Настройка Яндекс.Диска для бекапов

Дата: 2025-11-12
Статус: Руководство по настройке


🎯 Цель

Настроить автоматическую загрузку бекапов на Яндекс.Диск через rclone.


📋 Шаги настройки

ШАГ 1: Получить OAuth токен для Яндекс.Диска

Вариант A: Через веб-интерфейс (рекомендуется)

  1. Перейти: https://oauth.yandex.ru/authorize?response_type=token&client_id=423de84129304ccab38c6e7c8c6ae1cf

  2. Авторизоваться в Яндекс аккаунте

  3. Разрешить доступ приложению

  4. Скопировать токен из адресной строки:
    https://oauth.yandex.ru/verification_code#access_token=ВАШТОКЕНЗДЕСЬ&...

  5. Сохранить токен в безопасное место

Вариант B: Через rclone config

rclone config

Выбрать:
- n) New remote
- name: yandex
- Storage: yandex
- client_id: (оставить пустым)
- client_secret: (оставить пустым)
- Edit advanced config: n
- Use auto config: n (так как нет GUI)
- Вставить токен из Варианта A
- y) Yes this is OK
- q) Quit config


ШАГ 2: Создать конфиг rclone

Автоматическая настройка:

# Создать конфиг с токеном
$WORKSPACE/scripts/backup/setup-yandex-disk.sh "ВАШ_ТОКЕН"

Или вручную:

Создать файл /root/.config/rclone/rclone.conf:

[yandex]
type = yandex
token = {"access_token":"ВАШ_ТОКЕН","token_type":"bearer","expiry":"0001-01-01T00:00:00Z"}

ШАГ 3: Проверить подключение

# Список файлов на Яндекс.Диске
rclone ls yandex:

# Создать тестовую папку
rclone mkdir yandex:/backups-workspace

# Загрузить тестовый файл
echo "test" > /tmp/test.txt
rclone copy /tmp/test.txt yandex:/backups-workspace/

ШАГ 4: Создать структуру на Яндекс.Диске

# Автоматически через скрипт
$WORKSPACE/scripts/backup/create-yandex-structure.sh

# Или вручную
rclone mkdir yandex:/backups-workspace
rclone mkdir yandex:/backups-workspace/dev-pro
rclone mkdir yandex:/backups-workspace/marketplace
rclone mkdir yandex:/backups-workspace/databases

✅ Проверка

После настройки проверить:

# 1. Конфиг существует
cat ~/.config/rclone/rclone.conf

# 2. Подключение работает
rclone about yandex:

# 3. Структура создана
rclone lsd yandex:/backups-workspace/

Должно показать:

          -1 2025-11-12 12:00:00        -1 dev-pro
          -1 2025-11-12 12:00:00        -1 marketplace
          -1 2025-11-12 12:00:00        -1 databases

🔒 Безопасность

ВАЖНО:

  1. Токен = полный доступ к Яндекс.Диску
  2. Хранить токен только на сервере (не в git!)
  3. Ограничить права на конфиг:
    bash chmod 600 ~/.config/rclone/rclone.conf

  4. Не показывать токен в логах


🚀 Автоматизация

После настройки будут работать:

  1. Ежедневный backup marketplace БД → Яндекс.Диск
    - Cron: 04:00
    - Локально: /var/backups/marketplace/db/
    - Облако: yandex:/backups-workspace/marketplace/db/

  2. Еженедельный backup workspace → Яндекс.Диск
    - Cron: Воскресенье 03:00
    - Локально: /var/backups/dev-pro/
    - Облако: yandex:/backups-workspace/dev-pro/

  3. Перед deploy snapshot → Яндекс.Диск
    - Вручную
    - Локально: /var/backups/marketplace/snapshots/
    - Облако: yandex:/backups-workspace/marketplace/snapshots/


📊 Мониторинг

Проверить сколько места используется:

# На Яндекс.Диске
rclone about yandex:

# Локально
du -sh /var/backups/*

# Последние бекапы на Яндекс.Диске
rclone ls yandex:/backups-workspace/ --max-age 7d

🆘 Troubleshooting

Ошибка: "Failed to create file system"

Причина: Неверный токен или истёк срок действия

Решение:

# Получить новый токен и переконфигурировать
rclone config

Ошибка: "403 Forbidden"

Причина: Нет прав доступа

Решение: Проверить что токен получен с правильными правами

Медленная загрузка

Причина: Ограничения Яндекс.Диска

Решение: Использовать --transfers 4 для параллельной загрузки


📚 Полезные команды

# Список всех remote
rclone listremotes

# Информация о Яндекс.Диске (квота, использовано)
rclone about yandex:

# Копировать файл
rclone copy /path/to/file yandex:/folder/

# Синхронизация папки (односторонняя)
rclone sync /local/folder yandex:/remote/folder

# Удалить старые файлы (старше 30 дней)
rclone delete yandex:/backups-workspace/marketplace/ --min-age 30d

# Размер папки на Яндекс.Диске
rclone size yandex:/backups-workspace/

# Проверить целостность
rclone check /local/backup yandex:/backups-workspace/backup

🔗 Ссылки


Создано: 2025-11-12
Версия: 1.0