Evil-S[MLZ]
Новичок
- Сообщения
- 6
- Репутация
- 0
AutoIt: 3.
Версия: 1.0
Категория: Администрирование, Автоматизация, Вспомогательные функции Интернет,Командная строка,Сеть, Разное, Cisco.
Описание: Постоянно мучался зависаниями сети в филиале(тухнет GRE и теряется сеть Интернет) - из-за приколов у провайдера, и в один день мне это надоело, быстренько написал свое решение, которое перезапускается планировщиком задач Windows каждый час. Головная боль пропала.
Понимаю что костыль - но у провайдера есть приколы с зависшей сессией, и такой вариант работает уже 5-й месяц.
Код Перезагрузки Роутера /Пример:
Код Перезагрузки Gre /Пример:
Скрипты на Pastebin:
Скрипты исполнения должны лежать в папке совместно с Putty
Все файлы для пущей безопасности и упрощения откомпилированы в *.exe
Пример .bat файла в планировщике задач
Evil-S[MLZ]
Версия: 1.0
Категория: Администрирование, Автоматизация, Вспомогательные функции Интернет,Командная строка,Сеть, Разное, Cisco.
Описание: Постоянно мучался зависаниями сети в филиале(тухнет GRE и теряется сеть Интернет) - из-за приколов у провайдера, и в один день мне это надоело, быстренько написал свое решение, которое перезапускается планировщиком задач Windows каждый час. Головная боль пропала.
Понимаю что костыль - но у провайдера есть приколы с зависшей сессией, и такой вариант работает уже 5-й месяц.
Код Перезагрузки Роутера /Пример:
Код:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.10.2
Author: EvilSMLZ
Основное назначение:
v1. Перезагрузка Cisco роутера при потере пинга.
#ce ----------------------------------------------------------------------------
ConsoleWrite("Скрипт запущен, " & @MDAY & "/" & @MON & " " & @HOUR & ":" & @MIN & @CRLF)
; Script Start - Add your code below here
Sleep (10000)
#include <Timers.au3> ; Стандартная библиотека
Do ;Включаем цикл
$starttime = _Timer_Init(); Включаем таймер
$SleepTime=5*60*1000; Ждем 5 минуты
$ask = Ping("www.ya.ru",1000) ; Пингуем до яндекса
Sleep (30000) ; Ждем 30 секунд
$ask2 = Ping("8.8.8.8",1000) ; Пингуем до гугла
If $ask And $ask2 Then
ConsoleWrite(" В онлайне, задержка ответа: Яндекс " & $ask & " Гугл " & $ask2 & @CRLF)
; если не пингуется до яндекса и гугла то
Else
Opt("SendKeyDelay", 100)
ConsoleWrite("Начата перезагрузка роутера, " & @MDAY & "/" & @MON & " " & @HOUR & ":" & @MIN & @CRLF)
Run("C:\Program Files (x86)\PuTTY\putty.exe") ; запускаю putty
WinWaitActive("PuTTY Configuration") ; активное окно PuTTY Configuration
Send("IP") ;ввожу адрес сетевого ресурса к которому надо подключиться - Cisco Router
Send("{ENTER}") ; подключаюсь
WinWaitActive("[CLASS:PuTTY]") ; активным окно PuTTY Security Alert c вопросом о генерации ключей
; а после этого у меня появляется черное окно с приглашнением на ввод логина и соответсвенно потом пароля, но что-то я делаю не так и логин и пароль не вводится
WinActivate("[CLASS:PuTTY]", "")
Send("user") ; Логин
Send("{ENTER}")
Send("pass") ; Пароль
Send("{ENTER}")
Send("reload") ;Команда перезагрузки
Send("{ENTER}")
Send("yes") ; Соглашение с перезагрузкой
Send("{ENTER}")
ConsoleWrite("Роутер перезагружен")
EndIf
$SleepTime=$SleepTime - _Timer_Diff($starttime)
Sleep ($SleepTime)
Until False
Код Перезагрузки Gre /Пример:
Код:
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.10.2
Author: EvilSMLZ
Основное назначение:
v1. Перезагрузка Cisco GRE туннеля потере пинга
v2. Мелкая правка и исправление падений
#ce ----------------------------------------------------------------------------
ConsoleWrite("Скрипт запущен, " & @MDAY & "/" & @MON & " " & @HOUR & ":" & @MIN & @CRLF)
; Script Start - Add your code below here
Sleep (10000)
#include <Timers.au3> ; Стандартная библиотека
Do ;Включаем цикл
$starttime = _Timer_Init(); Включаем таймер
$SleepTime=5*60*1000; Ждем 5 минуты
$ask = Ping("10.0.3.1",1000) ; Пингуем до яндекса
Sleep (30000) ; Ждем 30 секунд
$ask2 = Ping("10.0.2.1",1000) ; Пингуем до гугла
If $ask And $ask2 Then
ConsoleWrite(" В онлайне, задержка ответа: Vlan2 " & $ask & " Vlan2 " & $ask2 & @CRLF)
; если не пингуется до яндекса и гугла то
Else
Opt("SendKeyDelay", 100)
ConsoleWrite("Начата перезагрузка роутера, " & @MDAY & "/" & @MON & " " & @HOUR & ":" & @MIN & @CRLF)
Run("C:\Program Files (x86)\PuTTY\putty.exe") ; запускаю putty
WinWaitActive("PuTTY Configuration") ; активное окно PuTTY Configuration
Send("IP") ;ввожу адрес сетевого ресурса к которому надо подключиться(Cisco)
Send("{ENTER}") ; подключаюсь
WinWaitActive("[CLASS:PuTTY]") ; активным окно PuTTY Security Alert c вопросом о генерации ключей
WinActivate("[CLASS:PuTTY]", "")
Send("user") ; Логин
Send("{ENTER}")
Send("PASS") ; Пароль
Send("{ENTER}")
Send("conf t") ;Интерфейс конфигуратора
Send("{ENTER}")
Send("interface Tunnel0") ; Выбираем Интерфейс GRE канала
Send("{ENTER}")
Send("shutdown") ;Выключаем туннель
Send("{ENTER}")
Send("no shutdown") ; Включаем туннель
Send("{ENTER}")
Send("end") ;Выходим из конфигуратора
Send("{ENTER}")
Send("write") ;Записываем изменения - чтобы скрипт перезагрузки не спрашивал о изменениях.
Send("{ENTER}")
Send("exit") ;Выходим из Putty
Send("{ENTER}")
ConsoleWrite("GRE перезагружен")
EndIf
$SleepTime=$SleepTime - _Timer_Diff($starttime)
Sleep ($SleepTime)
Until False
Скрипты на Pastebin:
Reload http://pastebin.com/YD8t74ep
Gre http://pastebin.com/PJx4LjPw
Gre http://pastebin.com/PJx4LjPw
Скрипты исполнения должны лежать в папке совместно с Putty
Все файлы для пущей безопасности и упрощения откомпилированы в *.exe
Пример .bat файла в планировщике задач
@taskkill /F /IM Reload_Ciscov2.exe
@start C:\PSTools\Cisco_reload\Reload_Ciscov2.exe
@taskkill /F /IM cmd
@start C:\PSTools\Cisco_reload\Reload_Ciscov2.exe
@taskkill /F /IM cmd
Evil-S[MLZ]