Доброго времени суток!
Господа, прошу пинать не сильно. Требуется помощь, наставления.
В сети установлены управляемые свичи D-Link DES 1228. Со временем возникла необходимость делать бэкапы.
Нужно сделать так, чтобы конфигурации этих свичей (около 500 шт.) брались с них и клались в ... Как это сделать?
Да, знаю, что нужно написать скрипт. Как его написать? С языками программирования не знаком.
Может у кого-то есть готовые примеры? Куда класть этот скрипт? Как его кушать?
Ребят, выручайте!
Как делать backup автоматически на свичах?
Вот тут для начала. Хоть для HP, но идея одинакова.
Вот тут для начала. Хоть для HP, но идея одинакова.
А в чем должен быть этот скрипт? Текстовый документ?
Куда его класть?
А в чем должен быть этот скрипт?
В файле.
Текстовый документ?
Т.к. скрипт - это последовательность команд, то файл текстовый.
Куда его класть?
Куда угодно, затем сделайте файл исполняемым и запустите. Если нужно, что бы скрипт выполнятся по расписанию, то читайте про cron.
Перед запуском скрипта удостоверьтесь, что в системе установлены все используемые в скрипте команды (утилиты).
А в чем должен быть этот скрипт? Текстовый документ?
Куда его класть?
IMHO, конечно, но, судя по вашим вопросам, проще (а в конечном итоге и дешевле) заплатить «специально обученному человеку».
[quote="MorandiTM"]А в чем должен быть этот скрипт? Текстовый документ?
Куда его класть?
IMHO, конечно, но, судя по вашим вопросам, проще (а в конечном итоге и дешевле) заплатить «специально обученному человеку».[/quote]
Парни, ну, я же попросил не пинать меня...
Да и в вопросе я написал, что не в курсе всего этого, поэтому и обратился к Вам за помощью.
К свичам по telnet же коннектитись?
Алгоритм
1. Формируем в текстовый файл список IP свичей.
2. Загоняем его в цикл и снимаем посторчно IP
3. Коннектимся по telnet и делаем бекап конфига
4. На свичах наверное есть sftp. Через него кидаем в нужное место уже к вам в /tmp.
5. Как все IP отработают. Бекапим все и маркируем по дате.
Как то так.
Вот тут для начала. Хоть для HP, но идея одинакова.
Смотри что посоветовали, но тут опять же придется вкурить тонкости.
Давлю к XliN
Задача разбивается на 2 подзадачи:
1. Вытащить через командную строку инфу по одной железяке , имеющией свой IP
2. Произвести обход всех свичей.
Наверняка IP железяк хранятся в какой-нибудь БД, если нет - то настоятельно рекомендую использовать, потом легче станет. Далее пишется скрипт на Perl (тк он работает с БД) по обходу железяк.
(Данное решение было проверено на Cisco)
Парни, спасибо, что отозвались!
Вот что у меня получилось сделать.
Первый файлик называется "do-dlink" и содержит в себе вот что:
[console]#!/bin/bash
(
echo open $1
sleep 1
echo -e "username"
sleep 2
echo -e "password"
sleep 4
echo "show config current_config"
sleep 1
echo "a"
sleep 5
echo "logout"
sleep 1
) | telnet[/console]
Второй файл называется "do-switch-list" и несет в себе вот что:
[console]#copy flash
while read line
do
echo "$line"
./do-dlink $line
done < ".h12list"
[/console]
Третий - "do" - вот каков:
[console]./do-switch-list > cccc[/console]
Ну, наконец четвертый. Он содержит в себе список адресов свичей в сети, называется "h12list" и выглядит примерно так:
[console]10.1.3.17 dlink-h2-2-1
10.1.3.18 dlink-h2-1-2
и так далее...
[/console]
Вроде как все должно быть правильно. В MC запускаю файл "do" и вот что я вижу:
[console]moranditm@ln2:/home/switch/dlink$ ./do[/console]
То есть ничего не происходит. Файл "cccc" остается пустым, в него ничего не складывается. Почему так?
.............
Спустя час, сделалось вот так:
[console]moranditm@ln2:/home/switch/dlink$ ./do
Connection closed by foreign host.
Connection closed by foreign host.. [/console]
./ do-dlink 10.1.3.17 возвращает конфиг свича?
Все свичи из списка доступны и на них можно войти телнетом.
Т.е. - да, возвращает, если я правильно понял Ваш вопрос.
тогда я подозреваю, надо почистить файл со списком свичей. оставить только айпи
тогда я подозреваю, надо почистить файл со списком свичей. оставить только айпи
Сделал так: файл со списком свичей и их наименований почистил, оставив в нем только адреса. Получилось так:
[console]10.1.3.17
10.1.3.18
10.1.3.12
10.1.3.2
10.1.3.9
10.1.3.7
10.1.3.5
10.1.3.11
10.1.3.16
10.1.3.4[/console]
Запускаю "do", а там ничего не изменилось.
[console]moranditm@ln2:/home/switch/dlink$ ./do
Connection closed by foreign host.
[/console]
Скажите, что еще поковырять? Где еще что посмотреть?
Чудо произошло! Бэкап стал писаться. Писаться - пишется, но он по-прежнему выдает, что соединение закрыто удаленным хостом.
Черт с ним, подумал я, лишь бы писал бэкапы. То, что он набэкапил складывается в файлик "сссс".
Вот то, что он бэкапит:
Показать
Trying 10.1.3.17...
Connected to 10.1.3.17.
Escape character is '^]'.
DES-3526 Fast Ethernet Switch Command Line Interface
Firmware: Build 5.01.B60
Copyright(C) 2008 D-Link Corporation. All rights reserved.
username:admin
password:***********
DES-3526:admin#sho config current_config
Command: show config current_config
#-------------------------------------------------------------------
# DES-3526 Configuration
#
# Firmware: Build 5.01.B60
# Copyright(C) 2008 D-Link Corporation. All rights reserved.
#-------------------------------------------------------------------
# BASIC
config serial_port baud_rate 9600 auto_logout 10_minutes
enable telnet 23
enable web 80
# ACCOUNT LIST
create account admin admin
PASSWORD
PASSWORD
# PASSWORD ENCRYPTION
disable password encryption
config terminal_line default
# BNR
config command_prompt default
# STORM
config traffic control_trap none
config traffic control 1-5 broadcast disable multicast disable unicast disable action drop threshold 128000
и так далее...
Созрел другой вопрос, парни! Как сделать так, чтобы по окончанию бэкапа списка из "h12list", он сам без моего участия автоматически начинал бэкапить h3list, h4list, h5list и так далее? Как-то чтобы цикл получился, наверное, надо... т.е. отбэкапив свичи из одного списка, он бы переходил на свичи в другом списке.
сбросить все списки в одну директорию, и в ней завернуть все исполнение в for list in `ls -A`; do ... done
и в do-switch-list скармливать параметром $list
сбросить все списки в одну директорию, и в ней завернуть все исполнение в for list in `ls -A`; do ... done
и в do-switch-list скармливать параметром $list
Пожалуйста, дайте больше подробностей.
У меня с кодом полная опа!
допустим в файлaх switch001 - switchXYZ лежат списки айпи адресов свичей.
у нас есть скрипт do-dlink который вытаскивает бекап из одного свича. и скрипт do-switch-list (надо бы поменять название) который проходит по одному файлу с айпишниками и бекапит их по очереди.
все что остается это повторить процесс для каждого из файлов с айпишниками
[console]
switchlist=$1
while read line
do
echo "$line"
./do-dlink $line
done < "$switchlist"
[/console]
и после этого
[console]for switchlist in `ls -A switch*`; do
./do-switch-list $switchlist
done
[/console]
Файл "do" и "do-dlink" остались прежними.
Изменения следующие: "скрипт do-switch-list" таков:
[console]do-switchlist-list=$1
while read line
do
echo "$line"
./do-dlink $line
done < "$switchlist"
#
for switchlist in `ls -A switch12`; do
./do-switch-list $switchlist
done
#
for switchlist in `ls -A switch3`; do
./do-switch-list $switchlist
done
#
for switchlist in `ls -A switch4`; do
./do-switch-list $switchlist
done
#
for switchlist in `ls -A switch6`; do
./do-switch-list $switchlist
done
#
for switchlist in `ls -A switch7`; do
./do-switch-list $switchlist
done
#
for switchlist in `ls -A switch8`; do
./do-switch-list $switchlist
done
#
for switchlist in `ls -A switch9`; do
./do-switch-list $switchlist
done
#[/console]
Файлы со списком свичей переименованы в "switch12", "switch3" и так далее...
Переименовал и "do-switch-list", опять же, если я Вас правильно понял. Оно ругалось, что директории не было видно.
Ткните, пожалуйста! И спасибо за Ваше терпение!
И посоветуйте, пожалуйста, какую-то книгу по башу. :[
www.tldp.org/LDP/abs/html/
я не понял зачем сыр-бор с повтором свич-файлов. я ведь написал - надо просто пройтись по списку файлов с айпишниками, в во время каждого из проходов, проходить по самим айпишникам и доставать бекапы