Владимир
ну сам свич работает же
Владимир
пакеты пересылает
Alexander
правда инсталяции новые не сделать)) но это мелочи))
Владимир
чего к нему лезть и дергать его
Sergey
и правда. приходит заявка от абонента, а ему ни порт грузануть, ни конфиг порта поправить.. ну и х*й с ним с этим абонентом
Владимир
-выключите роутер
Владимир
Sergey
а если надо конфиг поправить?
Sergey
так что это не нормально, что он ведет себя подобным образом
Владимир
Sergey
ну это то понятно. просто позиция, что "пакеты пересылает и хер с ним" - в корне неверная. Хотя не исключаю, что может это я слишком трепетно отношусь к работе сети
Владимир
ну у меня не абоненты, у меня коллеги
Владимир
оцениваю со своей колокольни
Sergey
Sergey
ну и снмп гет. сет уже не проходит
Andrew
а если записи арпов на компе глянуть, мак этого ип похож н аправду? а то, может, задвоение Ip
Sergey
неа. нет задвоения
Dmitry
Dmitry
Владимир [qWest]
на питоне
Dmitry
поделиться нет желания?😂
Sergey
скорее всего питон+снмп
Sergey
хотя написать подобный можно на чем угодно. даже на пхп лол
Aleksej
поделиться нет желания?😂
говнокостыли
querry=`mysql -u root --database uf -e "SELECT ip_address FROM switches WHERE savecfg='on'" | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'`
date=$(date +"%Y_%m_%d")
date_ago=$(date -d "2 months ago" +"%Y_%m_*")
echo "$date_ago"
if [ -d "/tftp/upload/swconfigs/$date_ago" ]; then
rm -r "/tftp/upload/swconfigs/$date_ago"
fi
if [ ! -d "/tftp/upload/swconfigs/$date" ]; then
mkdir "/tftp/upload/swconfigs/$date"
chown nobody "/tftp/upload/swconfigs/$date"
fi
for switch in `echo "$querry"`
do
if ! `ping -c 1 $switch` &> /dev/null
then
result=$( { echo "name"; echo "password";echo "upload cfg_toTFTP 1.1.1.1 dest_file upload/swconfigs/$date/$switch"; echo "upload cfg_toTFTP 1.1.1.1 upload/swconfigs/$date/$switch"; sleep$
if [[ ! -z `echo "$result"` ]]; then
if [[ -z `echo "$result" | grep 'Done'` ]] && [[ ! -z `echo "$result" | grep 'Failure'` ]]; then
echo "$result" >> fails.txt
fi
else
echo "Something went wrong with $switch" >> fails.txt
fi
echo "$result"
else
echo "$switch is unreachable" >> fails.txt
fi
done
Sergey
сурово...
Andrew
Микола
сурово...
самое главное там это
echo "name"; echo "password";echo "upload cfg_toTFTP 1.1.1.1 dest_file upload/swconfigs/$date/$switch"; echo "upload cfg_toTFTP 1.1.1.1 upload/swconfigs/$date/$switch
Sergey
говнокостыли
querry=`mysql -u root --database uf -e "SELECT ip_address FROM switches WHERE savecfg='on'" | grep -E '([0-9]{1,3}\.){3}[0-9]{1,3}'`
date=$(date +"%Y_%m_%d")
date_ago=$(date -d "2 months ago" +"%Y_%m_*")
echo "$date_ago"
if [ -d "/tftp/upload/swconfigs/$date_ago" ]; then
rm -r "/tftp/upload/swconfigs/$date_ago"
fi
if [ ! -d "/tftp/upload/swconfigs/$date" ]; then
mkdir "/tftp/upload/swconfigs/$date"
chown nobody "/tftp/upload/swconfigs/$date"
fi
for switch in `echo "$querry"`
do
if ! `ping -c 1 $switch` &> /dev/null
then
result=$( { echo "name"; echo "password";echo "upload cfg_toTFTP 1.1.1.1 dest_file upload/swconfigs/$date/$switch"; echo "upload cfg_toTFTP 1.1.1.1 upload/swconfigs/$date/$switch"; sleep$
if [[ ! -z `echo "$result"` ]]; then
if [[ -z `echo "$result" | grep 'Done'` ]] && [[ ! -z `echo "$result" | grep 'Failure'` ]]; then
echo "$result" >> fails.txt
fi
else
echo "Something went wrong with $switch" >> fails.txt
fi
echo "$result"
else
echo "$switch is unreachable" >> fails.txt
fi
done
пст.. так проще может?
#!/usr/bin/python
# -*- coding: utf-8
#импорт библиотек
import MySQLdb
import os
import subprocess
import time
import datetime
#from easysnmp import Session
today = datetime.date.today()
start_time = time.time()
# подключаемся к базе данных (не забываем указать кодировку, а то в базу запишутся иероглифы)
db = MySQLdb.connect(host="localhost", user="root", passwd="password", db="dbname", charset='utf8')
# формируем курсор, с помощью которого можно исполнять SQL-запросы
cursor = db.cursor()
# Выбираем все свитчи
sql = """SELECT ip WHERE bla bla bla FROM `tablename`'"""
# выполняем запрос
cursor.execute(sql)
# получаем результат выполнения запроса
data = cursor.fetchall()
# перебираем записи
for rec in data:
# извлекаем данные из записей - в том же порядке, как и в SQL-запросе
Ip, ObjectID = rec
cmd = '/usr/bin/expect /path_to_script.exp %s > /path_to_log/%s' % (Ip, Ip)
time.sleep(0.3)
subprocess.Popen(cmd, shell=True)
#end
timer = round((time.time() - start_time), 1)
print("--- %s seconds ---" % (timer))
Микола
понял, принял, не прав.. спутал с другой моделью
Aleksej
пст.. так проще может?
#!/usr/bin/python
# -*- coding: utf-8
#импорт библиотек
import MySQLdb
import os
import subprocess
import time
import datetime
#from easysnmp import Session
today = datetime.date.today()
start_time = time.time()
# подключаемся к базе данных (не забываем указать кодировку, а то в базу запишутся иероглифы)
db = MySQLdb.connect(host="localhost", user="root", passwd="password", db="dbname", charset='utf8')
# формируем курсор, с помощью которого можно исполнять SQL-запросы
cursor = db.cursor()
# Выбираем все свитчи
sql = """SELECT ip WHERE bla bla bla FROM `tablename`'"""
# выполняем запрос
cursor.execute(sql)
# получаем результат выполнения запроса
data = cursor.fetchall()
# перебираем записи
for rec in data:
# извлекаем данные из записей - в том же порядке, как и в SQL-запросе
Ip, ObjectID = rec
cmd = '/usr/bin/expect /path_to_script.exp %s > /path_to_log/%s' % (Ip, Ip)
time.sleep(0.3)
subprocess.Popen(cmd, shell=True)
#end
timer = round((time.time() - start_time), 1)
print("--- %s seconds ---" % (timer))
Может проще, я половину скриптов уже на экспект переписал... А до этого пока не добрался.. Ну работает же!!
Andrew
Sergey
Sergey
дальше видимо будет питон+пхп+експект, если снмп+питон не смогу победить, а то там наркоманство сплошное
Aleksej
у меня тут половина на перле и половина на баше
Aleksej
Я веб-странички на похапе переписываю потихоньку
Aleksej
а скрипты по возможности тоже оптимизирую.. но времени не сильно дофига на это)
Mike
вопрос зачем mysql ? ))
Mike
Ребят ребят
Mike
Ребят
Mike
Ansible
Sergey
ой
Mike
Anonymous
Mike
Его уже изобрели, он удобный и там есть ямл
Aleksej
а в ансибл я откуда буду выгружать данные?
Mike
Убунту 18 использует ямл, убунту 18 молодец. Будь как убунту 18
Aleksej
Или мне список свитчей рандомно генерировать?)
Mike
Anonymous
Anonymous
Не видел пока еще
Sergey
а это на самом деле неважно. главное что данные надо брать из БД, а из какой - пофиг
Aleksej
В мускуле у нас уже готовая таблица со свитчами, где есть их адреса, парадки, сколько там портов, и прочие нужности
А грепнуть оттуда айпишки труда не составляет
Ну и к тому же незачем бэкапить все свитчи, потому что 80% свитчей с типовым конфигом
Mike
У вас же у всех есть заббикс
Mike
У всех есть заббикс, а тот кто говорит что у него нет, держит заббикс дольше всех.
Sergey
> "парадки"
питер детектед
Alexander
Sergey
простите
Mike
Хде юзает
В настройке сети. Там теперь сеть конфигурит демон, который читает конфиг из ямл файла) неудобно пздц как)
Aleksej
Короче вместо того чтобы неделю разбираться с ансиблом, я быстрее напишу скрипт из десяти строк на экспекте, срсли
Aleksej
Мне за год обновлять конфиги массово пришлось два раза, оба раза за 15 минут накорябал скриптец и погнал)
Mike
Ну, как бы пожалуйста, я же не говорю что експект не может) я просто говорю что есть и другой инструмент и он довольно удобен)
Sergey
эх.. это к тебе смена ip-адресации не приходила)
Mike
Божечки святы, а нафига?
Alexander
Если пошла речь за готовые решения, то тогда уже давайте специально заточенные под это как cBackup к примеру
Sergey
Aleksej
Щас должен появиться чел который будет дрочить на юзерсайд
Mike
-_- Попахивает совами
Mike
Mike
Может тогда крупно телекому стоит все-таки уже перейти на ipv6, а не пинать несчастный в4?
Mike
Слишком громкое название для заббикс с плагинами и кастом дашиком из графаны и кибаны .