Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • Changelogs
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    RouterOS
    Резервное копирование на внешний FTP. Полезный скрипт.

    Резервное копирование на внешний FTP. Полезный скрипт.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Резервное копирование на внешний FTP. Полезный скрипт., RouterOS
     
    Alqatife
    Guest
    #1
    0
    07.06.2011 08:28:00
    Привет! Сегодня полезный скрипт для автоматического резервного копирования системы и базы данных UserManager — ежедневно, с новым именем файла по времени и дате! Ежедневная загрузка на внешний FTP! Ежедневная очистка! Экономим место — никаких дубликатов в Mikrotik!

    Сначала сам скрипт:

    /system script  
    add name=FTP-Backup policy=ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive source="# автоматическое резервное копирование системы и базы данных UM на внешний FTP\r\
    \n# Получаем время\r\
    \n:local ts [/system clock get time]\r\
    \n:set ts ([:pick \$ts 0 2].[:pick \$ts 3 5].[:pick \$ts 6 8])\r\
    \n# Получаем дату\r\
    \n:local ds [/system clock get date]\r\
    \n:set ds ([:pick \$ds 7 11].[:pick \$ds 0 3].[:pick \$ds 4 6])\r\
    \n# Генерируем имя файла для резервной копии UserManager — формат: UMDB-ServerName-Дата-Время\r\
    \n:local fname (\"/UMDB-\".[/system identity get name].\"-\".\$ds.\"-\".\$ts.\".umb\")\r\
    \n# Генерируем имя файла для резервной копии системы — формат: UMDB-ServerName-Дата-Время\r\
    \n:local fname1 (\"/UMDB-\".[/system identity get name].\"-\".\$ds.\"-\".\$ts.\".backup\")\r\
    \n# выше — способ получить уникальные имена файлов для UserManagerDB и системы\r\
    \n/tool user-manager database save name=\$fname\r\
    \n:log info message=UserManagerBackupFinished;\r\
    \n/system backup save name=\$fname1\r\
    \n:log info message=SystemBackupFinished;\r\
    \n# Загрузка UserManagerDB на внешний FTP — замените адрес, пользователя и пароль на свои\r\
    \n/tool fetch address=www.1.com src-path=\$fname user=user mode=ftp password=pass dst-path=/ upload=yes\r\
    \n# Загрузка резервной копии системы на внешний FTP — замените адрес, пользователя и пароль на свои\r\
    \n/tool fetch address=www.1.com src-path=\$fname1 user=user mode=ftp password=pass dst-path=/ upload=yes\r\
    \n# Пауза для завершения загрузки — увеличьте, если файлы большие\r\
    \n:delay 60s;\r\
    \n# Удаление файлов с именами, начинающимися на UMDB-\r\
    \n:foreach i in=[/file find] do={:if ([:typeof [:find [/file get \$i name] \"UMDB-\"]]!=\"nil\") do={/file remove \$i}}\r\
    \n:log info message=UserMangerBackup-SystemBackup-TempRemoved;\r\
    \n:log info message=UserManger-SystemBackup2CentOS-Finished;"

    Не забудьте поменять адрес, пользователя и пароль на свой FTP-сервер в двух местах:  
    1 - /tool fetch address= www.1.com src-path=$fname user=user mode=ftp password=pass dst-path=/ upload=yes  
    2 - /tool fetch address= www.1.com src-path=$fname1 user=user mode=ftp password=pass dst-path=/ upload=yes

    Последний шаг — настроить планировщик, чтобы запускать этот скрипт с нужным интервалом. Команда ниже гарантирует ежедневный запуск:

    /system scheduler  
    add comment="" disabled=no interval=1d name="System-UM DB- FTP backup" on-event=FTP-Backup start-date=jan/01/1970 start-time=00:00:00

    С уважением, Muntathar
     
     
     
    croskiper
    Guest
    #2
    0
    24.07.2011 17:30:00
    Привет, я установил ваш скрипт, но он не работает. Когда пытаюсь его запустить, ничего не происходит, в логе пусто. Я указал свой адрес, имя пользователя и пароль для FTP, но тоже не работает.

    Когда я убираю этот блок:

    ---------------------------------------------------------------------------------------------
    Загрузить резервную копию UserManagerDB на внешний FTP — замените адрес на адрес вашего FTP-сервера, а также user и pass  
    /tool fetch address= www.1.com src-path=$fname user=user mode=ftp password=pass dst-path=/ upload=yes

    Загрузить системную резервную копию на внешний FTP — замените адрес на адрес вашего FTP-сервера, а также user и pass  
    /tool fetch address= www.1.com src-path=$fname1 user=user mode=ftp password=pass dst-path=/ upload=yes

    Задержка для завершения загрузки — увеличьте, если файл резервной копии большой:  
    :delay 60s;
    ---------------------------------------------------------------------------------------------

    Тогда скрипт работает. В логе пишет, что системная и UserManager резервная копия завершены. После этого резервные копии автоматически удаляются.

    Спасибо за помощь!  
    С наилучшими пожеланиями.
     
     
     
    Alqatife
    Guest
    #3
    0
    17.09.2011 06:09:00
    Привет! Да, резервный файл удаляется с MikroTik после загрузки на FTP-сервер.  
    1. Временно создаётся резервная копия UserManager.  
    2. Записывается информационное сообщение: UserManagerBackupFinished.  
    3. Временно создаётся системная резервная копия.  
    4. Записывается информационное сообщение: SystemBackupFinished.  
    5. Загружается резервная копия UserManagerDB на FTP-сервер.  
    6. Загружается системная резервная копия на внешний FTP-сервер.  
    7. Удаляются временные резервные файлы UserManager и системы.  
    8. Записывается информационное сообщение: UserMangerBackup-SystemBackup-TempRemoved.  
    9. Записывается информационное сообщение: UserManger-SystemBackup2CentOS-Finished “FTP server”.  

    С наилучшими пожеланиями,
     
     
     
    kassiolm
    Guest
    #4
    0
    31.07.2013 18:29:00
    Работает на v6.1?
     
     
     
    kassiolm
    Guest
    #5
    0
    02.08.2013 19:12:00
    Скрипт создаёт файлы, но не загружает их, нужна помощь!!!
     
     
     
    JoePolgar
    Guest
    #6
    0
    14.08.2013 08:42:00
    используйте dst-path=filename вместо dst-path=/
     
     
     
    zap71
    Guest
    #7
    0
    27.12.2013 18:06:00
    Я немного подправил всё это дело, например, красиво форматировал дату в виде ГГГГ-ММ-ДД и добавил файл /export в бэкап, чтобы был ещё и удобочитаемый вариант. Всё это можно найти в Automated RouterOS Backup to FTP на Harry’s TechBlog.
     
     
     
    mac86
    Guest
    #8
    0
    29.07.2016 15:24:00
    Спасибо, ZAP71…! Очень полезно…!
     
     
     
    majestic
    Guest
    #9
    0
    09.01.2017 15:10:00
    Большое спасибо за идеи для скрипта, меня они действительно впечатлили. Я решил сделать свою версию, чтобы сохранить её локально на microSD, и вместо того, чтобы заново изобретать велосипед, взял часть вашего кода и подстроил под свои нужды. Все заслуги принадлежат оригинальному автору, а если хотите, можно немного признать и меня за внесённые изменения. Эта версия не сохраняет файлы во внутреннюю флеш-память, чтобы не изнашивать ограниченный ресурс.

    Обратите внимание: нужно изменить путь fbase на тот каталог, где вы будете сохранять резервные копии, и этот каталог должен быть создан заранее, так как в скрипте нет проверки и автоматического создания при отсутствии.

    Надеюсь, кому-то это будет полезно — особенно для тех роутеров, где есть внешнее хранилище, например, RB750Gr3. Сейчас структура папок такая:

    disk1  
    └── backups  
       └── auto  
           ├── export  
           │   └── Mikrotik-RB750Gr3_2-20170109-145244.rsc  
           └── Mikrotik-RB750Gr3_2-20170109-145244.backup

    3 папки, 2 файла.

    Код скрипта для rOS ниже:

    # базовый каталог  
    :local fbase "/disk1/backups/auto"

    # префикс имени файла  
    :local fnp "Mikrotik"

    # массив месяцев  
    :local months ("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");

    # время  
    :local ts [/system clock get time]
    :set ts ([:pick $ts 0 2] . [:pick $ts 3 5] . [:pick $ts 6 8])

    # дата  
    :local ds [/system clock get date]
    # преобразование названия месяца в число  
    :local month [:pick $ds 0 3];
    :local mm (([:find $months $month -1]) + 1);
    :if ($mm < 10) do={ :set mm ("0" . $mm); }  
    # форматирование $ds в YYYY-MM-DD  
    :set ds ([:pick $ds 7 11] . $mm . [:pick $ds 4 6])

    # имя файла для системного бэкапа  
    :local backupfn ($fnp . "-" . [/system identity get name] . "-" . $ds . "-" . $ts . ".backup")
    # имя файла для экспорта конфигурации  
    :local exportfn ($fnp . "-" . [/system identity get name] . "-" . $ds . "-" . $ts . ".rsc")

    # создание резервной копии  
    /system backup save name="$fbase/$backupfn"  
    :log info message="системный бэкап сохранён $fbase/$backupfn (1/2)"  
    /export compact file="$fbase/export/$exportfn"  
    :log info message="экспорт конфигурации сохранён $fbase/export/$exportfn (2/2)."

    Не забывайте добавить задачу в планировщик и запускать скрипт так часто, как вам нужно.
     
     
     
    fstirparo
    Guest
    #10
    0
    17.04.2019 16:57:00
    Привет, ребята! Пытаюсь использовать скрипт, который был выложен пару лет назад, но, похоже, синтаксис команды SET изменился. Стараюсь обновить весь скрипт, чтобы он запускался на более новой версии RouterOS, но если кто-то уже сделал это, пожалуйста, поделитесь. Спасибо!
     
     
     
    jcsm1998
    Guest
    #11
    0
    15.10.2019 18:40:00
    Привет, я обновил скрипт, сейчас использую версию v6.45.1. Измени это в скрипте и настрой планировщик на запуск скрипта. Замените usr на имя пользователя, passwd — на пароль, > www.ftp.com > — на FTP-сервер. Добавь это в новый скрипт и назначь права.

    # Получаем время и дату  
    :local ts [/system clock get time]
    :set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
    :local ds [/system clock get date]
    :set ds ([:pick $ds 7 11].[:pick $ds 0 3].[:pick $ds 4 6])

    # Эта строка генерирует имя файла для системного бэкапа  
    :local fname1 ("CCR-FTP--".$ds."-".$ts.".backup")

    /system backup save name=$fname1;  
    # раскомментируйте, чтобы отправлять также по e-mail (настройте e-mail tool в вашем MK с валидным smtp)  
    #/tool e-mail send to="email@domain.com" subject=("mikrotik  backup") body="Respaldo Historico CloudCore" file=$fname1;  
    # загрузка в корень FTP-сервера  
    /tool fetch address=www.ftp.com src-path=$fname1 user=usr mode=ftp password=passwd dst-path=$fname1 upload=yes  
    :log info "Backup Done";
     
     
     
    GhostyG89
    Guest
    #12
    0
    17.07.2020 19:54:00
    Если кто-то ищет исходный запрос и дополнения, которые добавлялись с годами, смотрите ниже. У меня скрипт работает на RB4011 v6.45.1

    # Получение и установка времени и даты
    :local ts [/system clock get time]
    :set ts ([:pick $ts 0 2].[:pick $ts 3 5].[:pick $ts 6 8])
    :local ds [/system clock get date]
    :set ds ([:pick $ds 7 11].[:pick $ds 0 3].[:pick $ds 4 6])

    # Генерация имени файла для резервной копии системы и User Manager
    :local fname1 (“–”.$ds.“-”.$ts.“.backup”)
    :local fname2 (“–”.$ds.“-”.$ts.“.umb”)

    # Создание резервной копии
    /system backup save name=$fname1
    :log info message=ConfigBackupFinished
    /user export file=$fname2
    :log info message=UserManagerBackupFinished

    # Загрузка на FTP-сервер
    /tool fetch address=DOMAIN/IP src-path=$fname1 user=username mode=ftp password=password dst-path=$fname1 upload=yes
    /tool fetch address=DOMAIN/IP src-path=$fname2 user=username mode=ftp password=password dst-path=$fname2 upload=yes
    :log info “Backup Uploaded”

    # Поиск файлов с “MHOME” и удаление
    foreach i in=[/file find] do={
     if ([:typeof [:find [/file get $i name] “ROUTER IDENT-”]]!=“nil”) do={
       /file remove $i
     }
    }
    :log info message=UserMangerBackup-ConfigBackup-TempRemoved

    \ КОНЕЦ СКРИПТА
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры