Обновить Mikrotik можно через Winbox или же через командную строку. Мне необходимо обновить порядка 100 устройств, поэтому написан небольшой скрипт на языке Expect, который а в автоматическом режиме выполнить обновление и перезагрузку устройств
Скрипт до безобразия прост. Состоит из трех файлов — mikrotik_list (содержить IP адреса устройств), send_command_mikrotik.sh (выполняет отправку команд на устройство) и configure_mikrotik.sh (можно сказать основной, управляющий скрипт, который и передает команды, а так же подставляет IP адреса в цикле)
Первая часть
Файл send_command_mikrotik.sh, в котором содержаться команды, которые будут выполнены на устройстве и цикл, который перебирает IP адреса из файла /root/mikrotik_list
| 1 2 3 4 5 6 7 8 9 10 11 12 | #!/bin/bash file="/root/mikrotik_list" while read line  do  # display $line or do somthing with $line  echo "$line"  /root/send_command_mikrotik.sh $line "system package update set channel=curren" "system package update check-for-updates" "system package update download" "quit"  done < $file | 
Вторая часть
Скрипт send_command_mikrotik.sh на Expect, который, собственно, и выполняет все действия
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #!/usr/bin/expect set ip [lindex $argv 0] set command1 [lindex $argv 1] set command2 [lindex $argv 2] set command3 [lindex $argv 3] set command4 [lindex $argv 4] set user admin set password Пароль_на_Mikrotik spawn telnet $ip expect "Login:" send "$user\r" expect "Password:" send "$password\r" sleep 1 send "> \r" send "> \r" sleep 1 expect ">" send "$command1\r" sleep 5 expect ">" send "$command2\r" sleep 5 expect ">" send "$command3\r" sleep 60 expect ">" send "$command4\r" sleep 1 #expect ":" #send "Y\r" | 
Третья часть
Файл mikrotik_list содержит IP адреса
| 1 2 3 4 5 6 7 8 9 10 11 | 10.10.25.1 10.10.26.1 10.10.27.1 10.10.29.1 10.10.41.1 10.10.43.1 10.10.44.1 10.10.46.1 10.10.54.1 | 
Использование
| 1 2 3 | ./configure_mikrotik.sh | 
В зависимости от скорости сети, можно немного поменять время ожидания загрузки пакета на роутер — sleep 90
Далее остается только запланировать перезагрузку роутеров. Это можно сделать заменив в скрипте список посылаемых команд и раскомменировав последние две строки в send_command_mikrotik.sh





 Загрузка...
 Загрузка...
добрый день.
собственно вопрос:
configure_mikrotik
где пример данного файла?))
спасибо
Добавил, он в самом начале