1 (23.07.2014 10:23:29 отредактировано MorandiTM)

Доброго времени суток!

Господа, прошу пинать не сильно. Требуется помощь, наставления.
В сети установлены управляемые свичи D-Link DES 1228. Со временем возникла необходимость делать бэкапы.
Нужно сделать так, чтобы конфигурации этих свичей (около 500 шт.) брались с них и клались в ... Как это сделать?
Да, знаю, что нужно написать скрипт. Как его написать? С языками программирования не знаком.
Может у кого-то есть готовые примеры? Куда класть этот скрипт? Как его кушать?

Ребят, выручайте!

2

Вот тут для начала. Хоть для HP, но идея одинакова.

3

Macumazan пишет:

Вот тут для начала. Хоть для HP, но идея одинакова.

А в чем должен быть этот скрипт? Текстовый документ?
Куда его класть?

4 (23.07.2014 14:38:54 отредактировано kostik87)

MorandiTM пишет:

А в чем должен быть этот скрипт?

В файле.

MorandiTM пишет:

Текстовый документ?

Т.к. скрипт - это последовательность команд, то файл текстовый.

MorandiTM пишет:

Куда его класть?

Куда угодно, затем сделайте файл исполняемым и запустите. Если нужно, что бы скрипт выполнятся по расписанию, то читайте про cron.

Перед запуском скрипта удостоверьтесь, что в системе установлены все используемые в скрипте команды (утилиты).

5

MorandiTM пишет:

А в чем должен быть этот скрипт? Текстовый документ?
Куда его класть?

IMHO, конечно, но, судя по вашим вопросам, проще (а в конечном итоге и дешевле) заплатить «специально обученному человеку».

Был, был и весь вышел...

6

Lupo Alberto пишет:
MorandiTM пишет:

А в чем должен быть этот скрипт? Текстовый документ?
Куда его класть?

IMHO, конечно, но, судя по вашим вопросам, проще (а в конечном итоге и дешевле) заплатить «специально обученному человеку».

Парни, ну, я же попросил не пинать меня...
Да и в вопросе я написал, что не в курсе всего этого, поэтому и обратился к Вам за помощью.

7 (23.07.2014 20:21:26 отредактировано XliN)

К свичам по telnet же коннектитись?

Алгоритм

1. Формируем в текстовый файл список IP свичей.
2. Загоняем его в цикл и снимаем посторчно IP
3. Коннектимся по telnet и делаем бекап конфига
4. На свичах наверное есть sftp. Через него кидаем в нужное место уже к вам в /tmp.
5. Как все IP отработают. Бекапим все и маркируем по дате.

Как то так.

Macumazan пишет:

Вот тут для начала. Хоть для HP, но идея одинакова.

Смотри что посоветовали, но тут опять же придется вкурить тонкости.

MX Linux 21.2 x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

8

Давлю к XliN

Задача разбивается на 2 подзадачи:
1. Вытащить через командную строку инфу по одной железяке , имеющией свой IP
2. Произвести обход всех свичей.

Наверняка IP  железяк хранятся в какой-нибудь  БД, если нет - то настоятельно рекомендую использовать, потом легче станет.  Далее пишется скрипт на Perl (тк он работает с БД) по обходу железяк.

(Данное решение было проверено на Cisco)

9 (25.07.2014 10:19:54 отредактировано MorandiTM)

Парни, спасибо, что отозвались!

Вот что у меня получилось сделать.
Первый файлик называется "do-dlink" и содержит в себе вот что:

 Консоль:
#!/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

Второй файл называется "do-switch-list" и несет в себе вот что:

 Консоль:
#copy flash

while read line
do
echo "$line"
./do-dlink $line
done < ".h12list"

Третий - "do" - вот каков:

 Консоль:
./do-switch-list > cccc

Ну, наконец четвертый. Он содержит в себе список адресов свичей в сети, называется "h12list" и выглядит примерно так:

 Консоль:
10.1.3.17 dlink-h2-2-1
10.1.3.18 dlink-h2-1-2
и так далее...

Вроде как все должно быть правильно. В MC запускаю файл "do" и вот что я вижу:

 Консоль:
moranditm@ln2:/home/switch/dlink$ ./do

То есть ничего не происходит. Файл "cccc" остается пустым, в него ничего не складывается. Почему так?
.............
Спустя час, сделалось вот так:

 Консоль:
moranditm@ln2:/home/switch/dlink$ ./do
Connection closed by foreign host.
Connection closed by foreign host..

10

./ do-dlink 10.1.3.17  возвращает конфиг свича?

11

Все свичи из списка доступны и на них можно войти телнетом.
Т.е. - да, возвращает, если я правильно понял Ваш вопрос.

12

тогда я подозреваю, надо почистить файл со списком свичей. оставить только айпи

13

dyasny пишет:

тогда я подозреваю, надо почистить файл со списком свичей. оставить только айпи

Сделал так: файл со списком свичей и их наименований почистил, оставив в нем только адреса. Получилось так:

 Консоль:
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

Запускаю "do", а там ничего не изменилось.

 Консоль:
moranditm@ln2:/home/switch/dlink$ ./do
Connection closed by foreign host.

Скажите, что еще поковырять? Где еще что посмотреть?

14

Чудо произошло! Бэкап стал писаться. Писаться - пишется, но он по-прежнему выдает, что соединение закрыто удаленным хостом.
Черт с ним, подумал я, лишь бы писал бэкапы. То, что он набэкапил складывается в файлик "сссс".
Вот то, что он бэкапит:

+ открыть спойлер

telnet 10.1.3.17
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 и так далее? Как-то чтобы цикл получился, наверное, надо... т.е. отбэкапив свичи из одного списка, он бы переходил на свичи в другом списке.

15

сбросить все списки в одну директорию, и в ней завернуть все исполнение в for list in `ls -A`; do ... done
и в do-switch-list скармливать параметром $list

16

dyasny пишет:

сбросить все списки в одну директорию, и в ней завернуть все исполнение в for list in `ls -A`; do ... done
и в do-switch-list скармливать параметром $list

Пожалуйста, дайте больше подробностей.
У меня с кодом полная опа!

17

допустим в файлaх switch001 - switchXYZ лежат списки айпи адресов свичей.

у нас есть скрипт do-dlink который вытаскивает бекап из одного свича. и скрипт do-switch-list (надо бы поменять название) который проходит по одному файлу с айпишниками и бекапит их по очереди.
все что остается это повторить процесс для каждого из файлов с айпишниками

 Консоль:

switchlist=$1
while read line
do
echo "$line"
./do-dlink $line
done < "$switchlist"

и после этого

 Консоль:
for switchlist in `ls -A switch*`; do
    ./do-switch-list $switchlist
done

18 (29.07.2014 16:00:42 отредактировано MorandiTM)

Файл "do" и "do-dlink" остались прежними.
Изменения следующие: "скрипт do-switch-list" таков:

 Консоль:
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
#

Файлы со списком свичей переименованы в "switch12", "switch3" и так далее...
Переименовал и "do-switch-list", опять же, если я Вас правильно понял. Оно ругалось, что директории не было видно.
Ткните, пожалуйста! И спасибо за Ваше терпение!
И посоветуйте, пожалуйста, какую-то книгу по башу.  ah

19

www.tldp.org/LDP/abs/html/


я не понял зачем сыр-бор с повтором свич-файлов. я ведь написал - надо просто пройтись по списку файлов с айпишниками, в во время каждого из проходов, проходить по самим айпишникам и доставать бекапы