Информация
Настройка
Новости
Контакты
Новинка
Распродажа
Оплата
Доставка
Загрузки
  • Прошивки
    • 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
    Отправлять аренду DHCP каждый день.

    Отправлять аренду DHCP каждый день.

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Отправлять аренду DHCP каждый день., RouterOS
     
    Krisken
    Guest
    #1
    0
    02.06.2015 20:12:00
    Здравствуйте, возможно ли настроить Routerboard так, чтобы он каждый день присылал мне на почту полный список аренд DHCP-сервера? Крис
     
     
     
    Krisken
    Guest
    #2
    0
    27.08.2015 20:42:00
    Вау, это действительно сработало! А теперь последний вопрос: можно ли ещё указать текущую прошивку (system routerboard print) и версию Winbox (system package print, колонка «version»)? Что-то вроде: ALL: 296 EOIP: 268 Winbox Version: 6.30.2 Firmware: 3.24 С наилучшими пожеланиями и спасибо за помощь!
     
     
     
    Krisken
    Guest
    #3
    0
    23.06.2015 11:34:00
    Итак, у меня есть это:

    :local i;  
    :local hostip;  
    :local hostname;  
    :local dhcplist "";  

    /ip dhcp-server lease;  
    :foreach i in=[find where server=dhcp1] do={
     :set hostname [get $i host-name];
     :set hostip [get $i address];
     :set dhcplist ( $dhcplist . $hostname . " " . "$hostip . "\n" )  
    }  
    /tool e-mail send to=info@mymail.eu subject="DHCP Leases KrIsa" body=$dhcplist;

    Это правильно? Потому что у меня это почему-то не работает. Другой скрипт, например, бэкап и экспорт на мой почтовый адрес каждую ночь, работает отлично.
     
     
     
    Krisken
    Guest
    #4
    0
    06.07.2015 21:45:00
    Кто-нибудь ещё знает решение этой проблемы? Было бы здорово, если бы кто-то мог помочь! С наилучшими пожеланиями, Kris
     
     
     
    Krisken
    Guest
    #5
    0
    13.08.2015 19:04:00
    Кто-нибудь?
     
     
     
    nescafe2002
    Guest
    #6
    0
    13.08.2015 19:41:00
    Привет! Подсказка «не работает» совсем не помогает с отладкой этого скрипта… но должен сказать, что опция «Run Script» в диалоге скриптов WinBox не даёт никакой дополнительной информации. Если вызвать скрипт через терминал, появится гораздо более понятное объяснение ошибки:

    [admin@MikroTik] > system script run MyScript
    syntax error (line 10 column 61)

    Вот эта строка и колонка:

    :set dhcplist ( $dhcplist . $hostname . " " . "$hostip . "\n" )
                                                               ^

    Просто убери кавычку перед $hostip — и всё заработает. Не забудь настроить почтовый сервер в Tools > Email.
     
     
     
    BartoszP
    Guest
    #7
    0
    13.08.2015 19:51:00
    Проверил… была лишняя кавычка " перед $hostip :local i;
    :local hostip;
    :local hostname;
    :local dhcplist "";

    /ip dhcp-server lease;
    :foreach i in=[find where server=DHCPSERVER_192 ] do={
     :set hostname [get $i host-name];
     :set hostip [get $i address];
     :set dhcplist ($dhcplist . $hostname . " " . $hostip . "\n");
    };
    /tool e-mail send to=myaddress  subject="DHCPLIST" body=$dhcplist; Если хотите посмотреть, где ошибка в коде, напишите скрипт, откройте CLI, перейдите в /system script и выполните команду print. Все скрипты выведутся, а синтаксическая ошибка будет выделена коричневым блоком.
     
     
     
    Krisken
    Guest
    #8
    0
    13.08.2015 21:17:00
    Это отлично работает! Но можно ли указать сверху количество выданных DHCP-аренд?
     
     
     
    Krisken
    Guest
    #9
    0
    13.08.2015 22:31:00
    Я только что это выяснил... В данный момент подключено 323 устройства, и у 299 из них IP из пула EOIP...  
    [admin@IT2GO - Router] /ip dhcp-server lease> print count-only
    323  
    [admin@IT2GO - Router] /ip dhcp-server lease> print count-only where server=EOIP
    299  
    Но как мне отредактировать это в коде для скриптинга ROS?
     
     
     
    Krisken
    Guest
    #10
    0
    25.08.2015 22:05:00
    Есть какие-нибудь советы или идеи по этому поводу?
     
     
     
    marting
    Guest
    #11
    0
    26.08.2015 10:33:00
    Что-то вроде этого:

    :local i;  
    :local hostip;  
    :local hostname;  
    :local dhcplist "";  
    :local leasesall [ :len [ /ip dhcp-server lease find ] ];
    :local leaseseoip [ :len [ /ip dhcp-server lease find where server=EOIP ] ];

    /ip dhcp-server lease;  
    :foreach i in=[find where server=DHCPSERVER_192 ] do={
     :set hostname [get $i host-name];
     :set hostip [get $i address];
     :set dhcplist ($dhcplist . $hostname . " " . $hostip . "\n");  
    };  
    /tool e-mail send to=myaddress subject="DHCPLIST" body=( "ALL: " . $leasesall . "\nEOIP: " . $leaseseoip . "\n\n" . $dhcplist );
     
     
     
    marting
    Guest
    #12
    0
    28.08.2015 13:07:00
    :local firmware [ /system routerboard get current-firmware ] :local routeros [ /system package get number=0 value-name=version ]
     
     
     
    plisken
    Guest
    #13
    0
    28.08.2015 20:42:00
    Это работает отлично, но можно ли добавить в этот отчёт MAC-адрес?
     
     
     
    Krisken
    Guest
    #14
    0
    28.08.2015 21:32:00
    :local i;  
    :local hostip;  
    :local hostname;  
    :local dhcplist "";  
    :local leasesall [ :len [/ip dhcp-server lease find where server=Lan] ];
    :local firmware [/system routerboard get current-firmware];
    :local routeros [/system package get number=0 value-name=version];

    /ip dhcp-server lease;  
    :foreach i in=[find where server=Lan] do={
     :set hostname [get $i host-name];
     :set hostip [get $i address];
     :set macaddress [get $i active-mac-address];
     :set dhcplist ($dhcplist . $hostname . " " . $hostip . " " . $macaddress . "\n");  
    };  
    /tool e-mail send to=info@it2go.eu subject="DHCP Leases KrIsa Lan" body=("DHCP Leases: " . $leasesall . "\n\n" . "Firmware: " . $firmware . "\n\n" . "RouterOS: " . $routeros . "\n\n" . $dhcplist);  

    Я "пытался" (ну, типа), но провалился. Я думал, что вышеописанный скрипт выведет мне список вроде такого:  
    DHCP Leases: 200  
    Firmware: x.y.z  
    RouterOS: a.b.c  

    blablabla 10.10.10.10 aa:bb:cc:dd:ee:ff  

    Но единственное, что он сделал...  
    RouterOS: 6.30.2  

    voip01 10.0.0.11  
    IT2GO-Fix 10.0.0.101  

    То есть он выводит версию RouterOS, hostname и IP, но больше не считает количество DHCP-аренд, не показывает версию прошивки и MAC-адреса...  

    Ещё раз: есть кто-то, кто знает решение?
     
     
     
    BartoszP
    Guest
    #15
    0
    28.08.2015 23:03:00
    Если ваш скрипт не работает, самый простой способ проверить, в чём может быть проблема — проверить правильность синтаксиса. В последнем скрипте есть ошибки: пожалуйста, добавьте в начало… переменная macaddress не объявлена, поэтому присвоение ей не удаётся, и скрипт останавливается: :local macaddress. Также измените выражение в теле… отсутствуют точки (конкатенация строк): ("DHCP Leases: $leasesall\nFirmware: $firmware\nRouterOS: $routeros\n" . $dhcplist), и всё должно заработать.
     
     
     
    n21roadie
    Guest
    #16
    0
    30.08.2015 12:41:00
    Возможно ли определить статус «Занят» в списке DHCP-аренд, кроме как «Назначено»?
     
     
     
    marting
    Guest
    #17
    0
    31.08.2015 08:32:00
    Да, но, думаю, ты тоже можешь немного поработать. Подсказка: [me@somewhere] /ip dhcp-server lease> :foreach i in=[find ] do={ :put [get $i status ] }
    waiting  
    bound  
    waiting
     
     
     
    plisken
    Guest
    #18
    0
    31.08.2015 18:53:00
    Можешь выложить полный скрипт с добавлением MAC-адреса и ROS, пожалуйста?
     
     
     
    Krisken
    Guest
    #19
    0
    31.08.2015 22:52:00
    Plisken, это должно сработать, если у тебя только один DHCP-сервер:

    :local i;  
    :local hostip;  
    :local hostname;  
    :local dhcplist "";  
    :local leasesall [ :len [ /ip dhcp-server lease find where server=Lan ] ];
    :local firmware [ /system routerboard get current-firmware ];
    :local routeros [ /system package get number=0 value-name=version ];
    :local macaddress;

    /ip dhcp-server lease;  
    :foreach i in=[find where server=Lan ] do={
     :set hostname [get $i host-name];
     :set hostip [get $i address];
     :set macaddress [get $i active-mac-address];
     :set dhcplist ($dhcplist . $hostname . " " . $hostip . " " . $macaddress . "\n");  
    };  
    /tool e-mail send to=your@mail.address subject="Subject of mail" body=("Amount of DHCP leases: $leasesall\n\nFirmware: $firmware\nRouterOS: $routeros\n\n" . $dhcplist);
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2025 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры