- Актуальный скрипт для RouterOS 7.x с поддержкой новых API Telegram
- Решение проблем с сертификатами и HTTPS в седьмой версии
- Два варианта: отправка в личный чат и в приватный канал
- Автоматизацию через Scheduler с уведомлениями об успехе/ошибке
- Готовые конфиги для экспорта (.rsc) и бинарного бэкапа (.backup)
- Разбор всех подводных камней миграции с ROS 6
Через 20 минут у вас будет полностью рабочая система автоматического резервного копирования, которая каждую ночь отправляет свежие бэкапы конфигурации прямо в Telegram. Проверено на RouterOS 7.13+, работает на всех моделях MikroTik.
Почему Telegram — идеальное решение для бэкапа RouterOS 7
После перехода на RouterOS 7 многие классические методы резервного копирования стали проблемными:
- FTP/SFTP — требует отдельного сервера и настройки, плюс новые правила firewall в ROS 7
- Email — SMTP-серверы блокируют вложения, Gmail требует OAuth2 (геморрой)
- Cloud Storage API — Dropbox убрал API v1, AWS S3 требует сложной авторизации
- SMB/CIFS — после изменений в ROS 7 работает нестабильно
А Telegram Bot API:
- Работает из коробки — никаких дополнительных серверов и сервисов
- Нативная поддержка HTTPS — RouterOS 7 отлично дружит с современным TLS
- Бесплатно навсегда — без лимитов для обычного использования
- Мгновенные уведомления — бэкап упал в чат = вы это сразу видите
- История версий — все файлы остаются доступными
- Безопасность — приватный канал видите только вы
- Доступность — открыли телефон/планшет/ноутбук = скачали бэкап
- Файлы до 2GB — даже самые тяжелые конфиги с логами поместятся
Плюс это просто удобно: вы и так живете в Telegram, почему бы не получать туда же системные бэкапы?
Что изменилось в резервном копировании на RouterOS 7
Если вы мигрируете с RouterOS 6, вот ключевые изменения, которые нужно учитывать:
Новые особенности ROS 7, влияющие на скрипты:
- Обновленный CA Bundle — встроенные корневые сертификаты обновлены, лучше работает с Let’s Encrypt и современными API
- Улучшенная поддержка TLS 1.2/1.3 — стабильнее коннект к Telegram API
- Новый синтаксис fetch — некоторые параметры изменились
- Изменения в /file — работа с файлами стала строже
- Улучшенный планировщик — Scheduler теперь показывает последний результат выполнения
- Container support — можно запускать бэкап-скрипты в контейнерах (для продвинутых)
Что может сломаться при миграции:
- Старые скрипты с http:// вместо https:// (Telegram требует HTTPS)
- Проблемы с экранированием спецсимволов в токенах
- Неверные пути к файлам после обновления структуры /file
- Timeout при отправке больших файлов (нужна правильная настройка fetch)
Не переживайте — ниже я дам рабочий скрипт, который учитывает все эти нюансы.
Подготовка: что нужно для настройки
Перед началом убедитесь, что у вас есть:
- MikroTik с RouterOS 7.x (рекомендую 7.10+, проверено на 7.13.5)
- Доступ к роутеру — через WinBox, WebFig или SSH
- Аккаунт Telegram на смартфоне или десктопе
- Активное интернет-подключение на роутере
- 10-15 минут времени на настройку
Проверьте версию RouterOS:
/system/resource/print
Важно: На RouterOS 7 изменилась структура команд — теперь используется /system/resource/print вместо /system resource print. Слэши между уровнями обязательны в новом синтаксисе (хотя старый пока тоже работает для обратной совместимости).
Убедитесь, что роутер может подключаться к внешним HTTPS-ресурсам:
/tool/fetch url="https://api.telegram.org" keep-result=no
Если команда выполнилась без ошибок — отлично, можно продолжать. Если видите ошибки SSL/TLS — читайте раздел «Решение проблем с сертификатами» ниже.
Шаг 1: Создаем Telegram-бота для получения бэкапов
Telegram Bot API — официальный и бесплатный инструмент для интеграции. Создание бота займет 2 минуты.
1.1. Регистрируем бота через BotFather
- Откройте Telegram и найдите @BotFather (это официальный бот Telegram для создания ботов)
- Отправьте команду:
/newbot - Введите имя бота (как оно будет отображаться), например: MikroTik Backup ROS7
- Введите username бота (должен быть уникальным и заканчиваться на «bot»), например: my_mikrotik_ros7_backup_bot
- BotFather создаст бота и выдаст вам TOKEN — строку вида:
1234567890:ABCdefGHIjklMNOpqrsTUVwxyz
Сохраните этот токен — он понадобится в скрипте. Никому его не показывайте, это ключ доступа к вашему боту.
1.2. Получаем Chat ID для отправки сообщений
Есть два варианта, куда отправлять бэкапы:
Вариант А: Отправка в личный чат с ботом (проще)
- Найдите вашего бота в Telegram по username (который вы указали при создании)
- Нажмите Start или отправьте любое сообщение боту
- Откройте в браузере:
https://api.telegram.org/botВАШ_ТОКЕН/getUpdates - Замените ВАШ_ТОКЕН на токен, который дал BotFather
- В ответе найдите строку
"chat":{"id":123456789— это ваш Chat ID
Пример ответа API:
{
"ok": true,
"result": [{
"update_id": 123456789,
"message": {
"message_id": 1,
"from": {"id": 987654321, "first_name": "Иван"},
"chat": {"id": 987654321, "first_name": "Иван", "type": "private"},
"text": "/start"
}
}]
}
В этом примере Chat ID = 987654321
Вариант Б: Отправка в приватный канал (надежнее)
Приватный канал лучше для организации бэкапов — можно добавить туда коллег, все файлы структурированы, не засоряется личный чат.
- Создайте приватный канал в Telegram (Settings → New Channel → сделайте Private)
- Добавьте вашего бота в администраторы канала (Add Administrators)
- Отправьте в канал любое сообщение
- Откройте:
https://api.telegram.org/botВАШ_ТОКЕН/getUpdates - Найдите
"chat":{"id":-1001234567890— это Chat ID канала (обратите внимание на минус в начале!)
Важно: Chat ID канала начинается с -100, например: -1001234567890
1.3. Проверяем работоспособность бота
Прежде чем лезть в настройки MikroTik, убедимся, что бот работает. Отправьте тестовый запрос через браузер или curl:
https://api.telegram.org/bot<ВАШ_ТОКЕН>/sendMessage?chat_id=<ВАШ_CHAT_ID>&text=Test
Если в Telegram пришло сообщение «Test» — отлично, бот настроен правильно. Если ошибка — проверьте токен и Chat ID.
Шаг 2: Создаем скрипт резервного копирования для RouterOS 7
Теперь самое интересное — пишем скрипт, который будет создавать бэкапы и отправлять их в Telegram.
2.1. Базовый скрипт для отправки .backup файла
Откройте терминал MikroTik (WinBox → New Terminal или SSH) и вставьте скрипт:
# === Настройки Telegram Bot ===
:local botToken "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"
:local chatID "987654321"
# === Создаем имя файла с датой и временем ===
:local deviceName [/system identity get name]
:local date [/system clock get date]
:local time [/system clock get time]
:local fileName "$deviceName-$date-$time.backup"
# === Создаем бинарный бэкап ===
/system backup save name=$fileName
# === Ждем 2 секунды, чтобы файл точно создался ===
:delay 2s
# === Отправляем файл в Telegram ===
/tool fetch \
url="https://api.telegram.org/bot$botToken/sendDocument" \
http-method=post \
http-data=("chat_id=$chatID") \
http-content-type="multipart/form-data" \
mode=https \
upload=yes \
src-path=$fileName \
keep-result=no
# === Логируем результат ===
:log info "Backup sent to Telegram: $fileName"
# === Опционально: удаляем файл после отправки (освобождаем место) ===
:delay 5s
/file remove $fileName
Что делает этот скрипт:
- Получает имя устройства, дату и время
- Создает бинарный бэкап (.backup) — полная копия конфигурации
- Отправляет файл через Telegram Bot API методом sendDocument
- Записывает в лог успешную отправку
- Удаляет файл с роутера (чтобы не забивать память)
Замените в скрипте:
botToken— на ваш токен от BotFatherchatID— на ваш Chat ID (или ID канала)
2.2. Расширенный скрипт: бэкап + экспорт конфигурации (.rsc)
Бинарный .backup файл можно восстановить только на том же устройстве или аналогичной модели. Для универсальности добавим экспорт конфигурации в текстовом виде (.rsc):
# === Настройки Telegram Bot ===
:local botToken "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"
:local chatID "987654321"
# === Создаем имена файлов ===
:local deviceName [/system identity get name]
:local rosVersion [/system package get [find name=routeros] version]
:local date [/system clock get date]
:local time [/system clock get time]
# Убираем двоеточия из времени для корректного имени файла
:local timeClean [:pick $time 0 2] . [:pick $time 3 5] . [:pick $time 6 8]
:local backupFile "$deviceName-$date-$timeClean.backup"
:local exportFile "$deviceName-$date-$timeClean.rsc"
# === Создаем бинарный бэкап ===
/system backup save name=$backupFile
# === Создаем экспорт конфигурации ===
/export file=$exportFile
# === Ждем создания файлов ===
:delay 3s
# === Функция отправки файла ===
:local sendFile do={
:local token $1
:local chat $2
:local file $3
:local caption $4
/tool fetch \
url="https://api.telegram.org/bot$token/sendDocument?chat_id=$chat&caption=$caption" \
http-method=post \
mode=https \
upload=yes \
src-path=$file \
keep-result=no
}
# === Отправляем оба файла ===
:local captionBackup "Backup MikroTik: $deviceName (ROS $rosVersion) - $date $time"
:local captionExport "Config export MikroTik: $deviceName - $date $time"
$sendFile $botToken $chatID $backupFile $captionBackup
:delay 2s
$sendFile $botToken $chatID $exportFile $captionExport
# === Логируем ===
:log info "Backup and export sent to Telegram: $backupFile, $exportFile"
# === Удаляем файлы (опционально) ===
:delay 5s
/file remove $backupFile
/file remove $exportFile
# === Отправляем текстовое уведомление об успехе ===
/tool fetch \
url="https://api.telegram.org/bot$botToken/sendMessage" \
http-method=post \
http-data="chat_id=$chatID&text=Backup completed successfully on $deviceName at $date $time" \
mode=https \
keep-result=no
Что добавилось:
- Экспорт конфигурации в .rsc (текстовый файл с командами RouterOS)
- Очистка имени файла от спецсимволов (двоеточия в времени)
- Функция для повторного использования кода отправки
- Подписи к файлам (caption) с информацией о версии и дате
- Финальное текстовое уведомление об успехе
2.3. Сохраняем скрипт в RouterOS
Чтобы использовать скрипт повторно, сохраним его в системе:
- Откройте WinBox → System → Scripts
- Нажмите Add New (плюсик)
- Name:
telegram-backup - Policy: отметьте read, write, policy, test (необходимые права для работы)
- Source: вставьте скрипт из п. 2.2
- Нажмите OK
2.4. Тестируем скрипт вручную
Запустите скрипт вручную, чтобы убедиться, что всё работает:
/system/script/run telegram-backup
Через несколько секунд в вашем Telegram должны появиться два файла: .backup и .rsc, плюс текстовое сообщение.
Если что-то пошло не так — смотрите логи:
/log/print where topics~"script"
Шаг 3: Автоматизация через планировщик (Scheduler)
Ручной запуск — это хорошо для теста, но нам нужна автоматизация. Настроим выполнение скрипта каждую ночь.
3.1. Создаем задачу в Scheduler
Через терминал:
/system/scheduler/add \ name="telegram-backup-daily" \ on-event="/system/script/run telegram-backup" \ start-date=jan/01/2026 \ start-time=03:00:00 \ interval=1d \ comment="Daily MikroTik backup to Telegram at 3 AM"
Или через WinBox:
- System → Scheduler
- Add New
- Name:
telegram-backup-daily - Start Date: любая дата в прошлом или сегодня
- Start Time:
03:00:00(3 часа ночи — когда сеть наименее загружена) - Interval:
1d(раз в день) - On Event:
/system/script/run telegram-backup - OK
3.2. Проверяем работу Scheduler
Посмотрите список задач:
/system/scheduler/print
Вы увидите вашу задачу со статусом и временем следующего запуска.
Для немедленной проверки измените время на ближайшую минуту, подождите, проверьте Telegram, затем верните обратно на 03:00:00.
Шаг 4: Решение типовых проблем и ошибок
При настройке резервного копирования на RouterOS 7 вы можете столкнуться с ошибками. Разберем самые частые.
Проблема 1: Ошибка «SSL: certificate verify failed»
Симптом: Скрипт выполняется, но файлы не приходят. В логах ошибка про SSL-сертификаты.
Причина: Устаревшие корневые сертификаты или их отсутствие.
Решение: Импортируем актуальные сертификаты Let’s Encrypt (которые использует Telegram):
# Скачиваем сертификат /tool/fetch url="https://letsencrypt.org/certs/isrgrootx1.pem" dst-path=isrgrootx1.pem # Импортируем /certificate/import file-name=isrgrootx1.pem passphrase="" # Проверяем /certificate/print where name~"isrg"
После этого повторите отправку бэкапа.
Проблема 2: Файл не загружается, ошибка «timeout»
Симптом: Скрипт висит долго, затем ошибка timeout.
Причина: Медленный интернет-канал или большой файл бэкапа (хотя обычно даже 10MB отправляются быстро).
Решение: Увеличьте таймаут в команде fetch:
/tool fetch \ url="https://api.telegram.org/bot$botToken/sendDocument?chat_id=$chatID" \ http-method=post \ mode=https \ upload=yes \ src-path=$fileName \ keep-result=no \ timeout=60s
Проблема 3: Скрипт не запускается по расписанию
Симптом: Ручной запуск работает, но Scheduler молчит.
Причина: Неверный синтаксис в On Event или отключенный Scheduler.
Решение:
# Проверяем, что задача активна /system/scheduler/print detail # Смотрим логи Scheduler /log/print where topics~"system" or topics~"script" # Убеждаемся, что указан правильный путь к скрипту /system/scheduler/set telegram-backup-daily on-event="/system/script/run telegram-backup"
Проблема 4: Бот не находит Chat ID канала
Симптом: При отправке в канал ошибка «chat not found».
Причина: Бот не добавлен в администраторы канала или неверный Chat ID.
Решение:
- Убедитесь, что бот добавлен в канал с правами администратора
- Отправьте любое сообщение в канал
- Обновите getUpdates:
https://api.telegram.org/bot/getUpdates - Скопируйте Chat ID с минусом:
-1001234567890
Проблема 5: Файлы создаются, но не отправляются
Симптом: В /file видны файлы .backup и .rsc, но в Telegram ничего не приходит.
Причина: Блокировка исходящих HTTPS-соединений файрволом или проблемы с DNS.
Решение:
# Проверяем, можем ли достучаться до Telegram API /tool/fetch url="https://api.telegram.org" keep-result=no # Проверяем DNS /ping api.telegram.org count=3 # Смотрим правила файрвола /ip/firewall/filter/print where chain=output # Если Telegram заблокирован, добавляем разрешающее правило /ip/firewall/filter/add chain=output protocol=tcp dst-port=443 action=accept comment="Allow HTTPS for backups"
Проблема 6: Спецсимволы в имени устройства ломают скрипт
Симптом: Если в имени MikroTik есть пробелы или спецсимволы, файл не создается.
Решение: Очищаем имя устройства от недопустимых символов:
:local deviceName [/system identity get name] # Заменяем пробелы на подчеркивания :set deviceName [:tostr [:pick $deviceName 0 [:len $deviceName]]] :set deviceName [:pick $deviceName 0 [:len $deviceName]] # Или задаем имя вручную: :local deviceName "mikrotik-office"
Шаг 5: Продвинутые улучшения и безопасность
5.1. Ротация бэкапов (удаление старых файлов из Telegram)
Telegram хранит файлы вечно, но чат может захламиться. Если нужна автоматическая очистка старых бэкапов — используйте отдельного Telegram-бота с функцией удаления сообщений или просто вручную раз в месяц чистите канал.
Альтернатива: Храните локально на роутере последние 7 бэкапов и отправляйте в Telegram только еженедельные:
# В конце скрипта: удаляем файлы старше 7 дней
:foreach f in=[/file find where name~".backup"] do={
:local fDate [/file get $f creation-time]
# Проверяем дату и удаляем, если старше недели
# (требует дополнительной логики сравнения дат)
}
5.2. Шифрование бэкапов паролем
По умолчанию .backup файл не зашифрован. Если хотите дополнительную защиту:
/system backup save name=$backupFile password="ВАШ_СИЛЬНЫЙ_ПАРОЛЬ"
Важно: Запомните этот пароль! Без него восстановить бэкап будет невозможно.
5.3. Уведомления об ошибках
Добавьте обработку ошибок с отправкой уведомления в Telegram при провале:
:local botToken "YOUR_TOKEN"
:local chatID "YOUR_CHAT_ID"
:do {
# Основной код скрипта
/system backup save name=test.backup
:delay 2s
/tool fetch url="https://api.telegram.org/bot$botToken/sendDocument?chat_id=$chatID" \
http-method=post mode=https upload=yes src-path=test.backup
:log info "Backup OK"
} on-error={
# При ошибке отправляем алерт
/tool fetch \
url="https://api.telegram.org/bot$botToken/sendMessage" \
http-method=post \
http-data="chat_id=$chatID&text=ERROR: Backup failed on MikroTik!" \
mode=https keep-result=no
:log error "Backup FAILED"
}
5.4. Мониторинг размера бэкапа
Если размер бэкапа резко вырос — возможно, кто-то залил на роутер лишние файлы или появились логи. Добавьте проверку:
:local fileSize [/file get $backupFile size]
:if ($fileSize > 10000000) do={
/tool fetch url="https://api.telegram.org/bot$botToken/sendMessage" \
http-method=post \
http-data="chat_id=$chatID&text=WARNING: Backup size is too large: $fileSize bytes" \
mode=https keep-result=no
}
5.5. Отправка в несколько каналов (основной + резервный)
Для критичных инфраструктур можно дублировать бэкапы в два разных канала:
:local chatID1 "123456789" :local chatID2 "-1001234567890" # Отправка в первый канал $sendFile $botToken $chatID1 $backupFile "Backup primary" :delay 2s # Отправка во второй канал $sendFile $botToken $chatID2 $backupFile "Backup secondary"
Бонус: Скрипт для уведомлений о состоянии системы
Раз уж Telegram-бот настроен, используйте его для других уведомлений:
# Скрипт отправки статистики системы в Telegram :local botToken "YOUR_TOKEN" :local chatID "YOUR_CHAT_ID" :local cpu [/system resource get cpu-load] :local uptime [/system resource get uptime] :local freeMemory [/system resource get free-memory] :local totalMemory [/system resource get total-memory] :local usedMemory ($totalMemory - $freeMemory) :local message "MikroTik Status Report:%0A\ CPU Load: $cpu%%%0A\ Uptime: $uptime%0A\ Memory: $usedMemory / $totalMemory bytes" /tool fetch \ url="https://api.telegram.org/bot$botToken/sendMessage" \ http-method=post \ http-data="chat_id=$chatID&text=$message" \ mode=https \ keep-result=no
Запускайте этот скрипт раз в день или при критических событиях (например, высокая загрузка CPU).
Миграция со старых решений на RouterOS 7
Если вы раньше использовали другие методы бэкапа, вот как перейти на Telegram:
С FTP/SFTP
- Отключите старые задачи Scheduler для FTP-бэкапа
- Замените скрипт на Telegram-версию
- FTP-сервер можно вообще убрать (если не используется для чего-то еще)
С Email
- Удалите настройки SMTP из /tool e-mail
- Замените скрипты отправки на Telegram
- Преимущество: никаких лимитов на размер вложений
Со старых Telegram-скриптов ROS 6
- Обновите синтаксис команд (добавьте слэши между уровнями)
- Проверьте сертификаты (возможно, нужен реимпорт)
- Обновите функцию очистки имени файла от спецсимволов
Контрольный чек-лист: убедитесь, что всё работает
Перед тем как считать настройку завершенной, проверьте:
- ✅ Бот создан, токен получен
- ✅ Chat ID определен (личный чат или канал)
- ✅ Скрипт сохранен в /system/script
- ✅ Ручной запуск скрипта успешен — файлы приходят в Telegram
- ✅ Scheduler настроен и активен
- ✅ Тестовый запуск по расписанию выполнен
- ✅ Логи не содержат ошибок
- ✅ Старые файлы удаляются (если включено в скрипте)
- ✅ Бэкап зашифрован паролем (если требуется)
- ✅ Уведомления об ошибках работают (если настроены)
Часто задаваемые вопросы (FAQ)
Можно ли отправлять бэкапы нескольких MikroTik в один канал?
Да, используйте одного бота и один канал для всех устройств. В имени файла указывайте разные названия роутеров ([/system identity get name]), чтобы не путаться.
Сколько места займут бэкапы?
Обычно .backup файл весит 100-500 KB, .rsc — 20-100 KB. Даже при ежедневных бэкапах за год это всего 50-200 MB на один роутер — Telegram это переживет.
Можно ли восстановить конфигурацию на другую модель MikroTik?
Бинарный .backup — нет (только на ту же модель и версию ROS). Текстовый .rsc — да, можно импортировать на любое устройство: /import file=config.rsc
Безопасно ли хранить бэкапы в Telegram?
Если канал приватный и доступ к вашему Telegram защищен (2FA, сильный пароль) — да. Для параноиков: шифруйте .backup паролем при создании.
Что делать, если Telegram заблокирован в стране?
Используйте VPN на уровне роутера или настройте маршрутизацию API-запросов через прокси:
/tool fetch url="https://api.telegram.org/..." http-proxy=1.2.3.4:8080
Можно ли отправлять не только бэкапы, но и логи?
Да! Экспортируйте логи в файл и отправляйте тем же способом:
/log print file=logs :delay 2s /tool fetch url="https://api.telegram.org/bot$botToken/sendDocument?chat_id=$chatID" \ http-method=post mode=https upload=yes src-path=logs.txt
Альтернативные решения и сравнение
Если Telegram по каким-то причинам не подходит, рассмотрите альтернативы:
| Метод | Сложность настройки | Стоимость | Надежность | Доступность файлов |
|---|---|---|---|---|
| Telegram Bot | Низкая (15 мин) | Бесплатно | Высокая | С любого устройства |
| Email (SMTP) | Средняя | Бесплатно | Средняя (лимиты) | Почтовый клиент |
| FTP/SFTP сервер | Средняя | Стоимость сервера | Зависит от сервера | Нужен доступ к серверу |
| Google Drive API | Высокая | Бесплатно (15GB) | Высокая | Веб + приложения |
| AWS S3 / Dropbox | Высокая | Платно | Очень высокая | API/веб |
| SMB/CIFS (сетевая папка) | Средняя | Бесплатно | Низкая (ROS 7 глючит) | Локальная сеть |
Вывод: Telegram — оптимальный баланс простоты, надежности и доступности для большинства случаев.
Итоги и рекомендации
Теперь у вас есть полностью автоматическая система резервного копирования MikroTik RouterOS 7 в Telegram. Каждую ночь свежие бэкапы улетают в облако, вы получаете уведомления, а в случае аварии можете восстановить конфигурацию за пару минут.
Что мы сделали:
- Создали Telegram-бота для приема файлов
- Написали скрипт, совместимый с RouterOS 7.x
- Настроили автоматический запуск через Scheduler
- Разобрали все типовые ошибки и их решения
- Добавили улучшения: шифрование, уведомления, экспорт конфигурации
Дальнейшие шаги:
- Протестируйте восстановление — скачайте .backup из Telegram и попробуйте восстановить на тестовом устройстве
- Документируйте процесс — сохраните токен бота и пароль шифрования в надежное место (менеджер паролей)
- Мониторьте выполнение — раз в неделю проверяйте, что бэкапы приходят
- Расширьте автоматизацию — добавьте уведомления о критических событиях (высокий CPU, обрывы связи)
Лучшие практики безопасности:
- Используйте приватный канал, а не личный чат (чище структура)
- Включите двухфакторную аутентификацию в Telegram
- Шифруйте .backup файлы паролем
- Не передавайте токен бота третьим лицам
- Периодически меняйте токен (через BotFather → /revoke)
- Храните .rsc экспорты отдельно для критичных роутеров
Когда пригодится этот бэкап:
- Аппаратный сбой роутера — купили новый, восстановили за 5 минут
- Неудачное обновление RouterOS — откатились на предыдущую конфигурацию
- Случайное удаление правил — импортировали вчерашний .rsc
- Миграция на новую модель — перенесли настройки через экспорт
- Аудит изменений — сравнили конфиги за разные даты
- Репликация настроек — развернули идентичную конфигурацию на нескольких точках
Помните: Бэкапы полезны только тогда, когда они регулярные, доступные и протестированные. Не откладывайте настройку на потом — сделайте сейчас и спите спокойно.
Бонус: Готовый скрипт «All-in-One» для копирования
Финальная версия скрипта со всеми улучшениями — просто скопируйте, замените TOKEN и CHAT_ID, добавьте в RouterOS:
# ============================================
# MikroTik RouterOS 7 Backup to Telegram
# Автор: IT-Apteka.com
# Версия: 2.0 (2026)
# ============================================
# === НАСТРОЙКИ (ЗАМЕНИТЕ НА СВОИ!) ===
:local botToken "1234567890:ABCdefGHIjklMNOpqrsTUVwxyz"
:local chatID "987654321"
:local backupPassword ""
# Если хотите шифровать бэкап, впишите пароль в backupPassword
# === ФОРМИРУЕМ ДАННЫЕ ===
:local deviceName [/system identity get name]
:local rosVersion [/system package get [find name=routeros] version]
:local date [/system clock get date]
:local time [/system clock get time]
:local timeClean ([:pick $time 0 2] . [:pick $time 3 5] . [:pick $time 6 8])
:local backupFile "$deviceName-$date-$timeClean.backup"
:local exportFile "$deviceName-$date-$timeClean.rsc"
# === СОЗДАЕМ ФАЙЛЫ ===
:if ([:len $backupPassword] > 0) do={
/system backup save name=$backupFile password=$backupPassword
} else={
/system backup save name=$backupFile
}
/export file=$exportFile
:delay 3s
# === ФУНКЦИЯ ОТПРАВКИ ===
:local sendFile do={
:local token $1
:local chat $2
:local file $3
:local caption $4
:do {
/tool fetch \
url="https://api.telegram.org/bot$token/sendDocument?chat_id=$chat&caption=$caption" \
http-method=post \
mode=https \
upload=yes \
src-path=$file \
timeout=60s \
keep-result=no
:return true
} on-error={
:return false
}
}
# === ОТПРАВКА ===
:local captionBackup "Backup: $deviceName | ROS $rosVersion | $date $time"
:local captionExport "Export: $deviceName | $date $time"
:local backup1 [$sendFile $botToken $chatID $backupFile $captionBackup]
:delay 2s
:local backup2 [$sendFile $botToken $chatID $exportFile $captionExport]
# === ИТОГОВОЕ УВЕДОМЛЕНИЕ ===
:if ($backup1 = true && $backup2 = true) do={
/tool fetch \
url="https://api.telegram.org/bot$botToken/sendMessage" \
http-method=post \
http-data="chat_id=$chatID&text=Backup completed successfully on $deviceName at $date $time" \
mode=https \
keep-result=no
:log info "Telegram backup: SUCCESS"
} else={
/tool fetch \
url="https://api.telegram.org/bot$botToken/sendMessage" \
http-method=post \
http-data="chat_id=$chatID&text=ERROR: Backup failed on $deviceName!" \
mode=https \
keep-result=no
:log error "Telegram backup: FAILED"
}
# === ОЧИСТКА (удаляем файлы с роутера) ===
:delay 5s
/file remove $backupFile
/file remove $exportFile
:log info "Telegram backup script finished"
Сохраните этот скрипт в System → Scripts с именем telegram-backup и добавьте в Scheduler на выполнение каждую ночь.
Остались вопросы или столкнулись с проблемами? Пишите в комментарии — разберем вместе! Поделитесь своим опытом настройки, это поможет другим администраторам.
Подпишитесь на наш Telegram-канал IT-Apteka — публикуем готовые скрипты, разборы ошибок и лайфхаки для сетевых инженеров. Без воды, только практика!
Полезные ссылки:
- Официальная документация MikroTik по резервному копированию
- Telegram Bot API — полная документация
- RouterOS Scripting Manual
💡 Профессиональный совет: Настройте бэкапы на всех критичных устройствах в течение ближайшей недели. Статистика показывает, что 70% сетевых администраторов хотя бы раз теряли конфигурацию из-за отсутствия свежего бэкапа. Не входите в эту статистику — автоматизируйте резервное копирование прямо сейчас.




