Оглавление
Обновить 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
где пример данного файла?))
спасибо
Добавил, он в самом начале