Blog
January 5

Автоматический бекап роутера на Яндекс Диск

OpenWRT — мощная операционная система для роутеров, но её настройка требует времени. Чтобы не потерять конфигурацию при сбоях или обновлениях, написал скрипт для автоматического резервного копирования на Яндекс Диск с уведомлениями в Telegram.

Репозиторий: OpenWRTBackupScript на GitVerse

Описание проекта

OpenWRTBackupScript — shell-скрипт для автоматического создания бекапов конфигурации OpenWRT роутеров с загрузкой на Яндекс Диск.

Возможности

  • Создание бекапов через sysupgrade -b
  • Прямая загрузка на Яндекс Диск через rclone
  • Хранение только последних 3 бекапов в облаке
  • Уведомления в Telegram об успешности/ошибках
  • Автоматическая очистка временных файлов
  • Простая настройка прямо в скрипте

Установка

Шаг 1: Установка rclone на OpenWRT

# Подключитесь к роутеру
ssh root@192.168.1.1

# Обновите список пакетов
opkg update

# Установите rclone
opkg install rclone

# Проверьте установку
rclone --version

Шаг 2: Настройка rclone для Яндекс Диска

rclone config

Следуйте инструкциям для настройки подключения к Яндекс Диску.

Шаг 3: Копирование скрипта на роутер

# Подключитесь к роутеру
ssh root@192.168.1.1

# Создайте папку и скачайте скрипт
mkdir -p /root/scripts
curl -o /root/scripts/router-backup.sh https://gitverse.ru/api/repos/tatarinovms/OpenWRTBackupScript/raw/branch/master/router-backup.sh

# Сделайте исполняемым
chmod +x /root/scripts/router-backup.sh

Шаг 4: Настройка Telegram (опционально)

Создание бота:

  1. Напишите @BotFather в Telegram
  2. Отправьте /newbot
  3. Введите имя и username бота
  4. Получите токен

Получение Chat ID: Перейдите по ссылке: https://api.telegram.org/bot[ТОКЕН]/getUpdates и найдите поле "chat":{"id":

Шаг 5: Настройка скрипта

Отредактируйте конфигурацию в начале файла:

vi /root/scripts/router-backup.sh
# rclone settings
RCLONE_SERVICE="yandex"           # Название вашего rclone сервиса
YANDEX_PATH="Backup/router"       # Папка на Яндекс Диске

# Telegram settings (опционально)
TELEGRAM_BOT_TOKEN=""             # Токен бота (пусто — отключить уведомления)
TELEGRAM_CHAT_ID=""               # Chat ID (пусто — отключить уведомления)

Шаг 6: Ручной запуск

/root/scripts/router-backup.sh

При успехе бекап появится на Яндекс Диске и придёт уведомление в Telegram.

Шаг 7: Автоматизация через cron

crontab -e

# Добавьте строку (каждый понедельник в 10:00)
0 10 * * 1 /root/scripts/router-backup.sh >/dev/null 2>&1

# Перезапустите cron
/etc/init.d/cron enable
/etc/init.d/cron restart

Примеры уведомлений

✅ Успешный бекап:

✅ OpenWRT Backup Completed

📁 File: router-backup-2025-12-13-1430.tar.gz
📍 Location: yandex:Backup/router/router-backup-2025-12-13-1430.tar.gz
🕐 Time: 2025-12-13 14:30:00

❌ Ошибка:

❌ OpenWRT Backup Failed

🚫 Error: Failed to create backup
🕐 Time: 2025-12-13 14:30:00