Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2018 17:13:54

scorcher
Зарегистрирован: 2018-10-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

Привет,

Надеюсь на вашу помощь, собираю скрипт для простой задачи - reboot через api для определенных майнеров. То есть, имеется список ip майнеров которые необходимо перезагрузить (допустим 20), через API
нашел похожее решение на GitHub как заставить его читать список ip из txt или csv?

 from dragon_rest.dragons import DragonAPI
dragon_host = '10.01.01.01'
api = DragonAPI(dragon_host,
                username='admin',
                password='dragonadmin')
r = api.reboot() #reboot
print(r)
api.reboot

так ребутит один майнер

нужно что то типа такого? и как их связать чтоб он брал один ip из файла - ребутил и брал следующий и так до конца списка?

 f = open(r'test.csv')
lines = f.readlines()
f.close()

ps сильно не пинайте, первое что пытаюсь реализовать

Отредактировано scorcher (Окт. 27, 2018 19:13:00)

Офлайн

#2 Окт. 27, 2018 21:26:34

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

scorcher
нужно что то типа такого? и как их связать чтоб он брал один ip из файла - ребутил и брал следующий и так до конца списка?
да чтто типа такого,
 from dragon_rest.dragons import DragonAPI
def reboot_host(address, login, password):
    api = DragonAPI(address,
                username=login,
                password=password)
    r = api.reboot()
    print(r)
with  open(r'test.csv', 'r') as f:
    for line in f.readlines():
        address, login, password = line.split(',')
        '''вобщем тут нужно получить ИП, логин и пароль. как они у вас  храняться ХЗ.
           Исхожу из того  что в виде "XXX.XXX.XXX.XXX,admin_login,admin_password"
           Но вобщем поправте где нужно, может нужно будет пробелы гдето поубирать или еще что.
        '''
        reboot_host(address, login, password)



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Окт. 27, 2018 21:53:48

scorcher
Зарегистрирован: 2018-10-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

спасибо,

хранятся в txt или csv такого типа:

10.01.01.01
10.01.01.00
10.01.01.02
10.01.01.03

в csv один ip - одна ячейка/строка.

login и password везде одинаковый по дефолту admin и dragonadmin так что этот параметр постоянный

Отредактировано scorcher (Окт. 27, 2018 21:55:31)

Офлайн

#4 Окт. 27, 2018 22:59:02

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

scorcher
login и password везде одинаковый по дефолту admin и dragonadmin так что этот параметр постоянный
тем более еще проще, вместо address в reboot_host подставляете line, а login и password задавайте константами.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#5 Окт. 28, 2018 08:45:07

scorcher
Зарегистрирован: 2018-10-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

собрал вот так и все равно не работает, перегружает только первый ip

 from dragon_rest.dragons import DragonAPI
dragon_host = 'list'
api = DragonAPI(dragon_host,
                username='admin',
                password='dragonadmin')
r = api.reboot() #reboot
print(r)
api.reboot
with open("test.txt") as file:
    array = list(open('test.txt'))

для примера добавлю файл который читаю

Отредактировано scorcher (Окт. 28, 2018 12:12:35)

Прикреплённый файлы:
attachment test.txt (23 байта)

Офлайн

#6 Окт. 28, 2018 12:32:03

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

так а что вы собрали?
Вам же выше указали что надо открыть файл.
В нем циклом пройтись по айпишникам и для каждого из них выполнить
api = DragonAPI(dragon_host,
username='admin',
password='dragonadmin')

вы же выбросили все циклы и вернулись к изначальному.

Начните с того что оставьте пока перезагрузку и распечатайте айпишники из файла по одному.
Когда что получится просто подставите что в свой АПИ.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Отредактировано ZerG (Окт. 28, 2018 12:32:33)

Офлайн

#7 Окт. 28, 2018 14:51:38

scorcher
Зарегистрирован: 2018-10-27
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

добил

 from dragon_rest.dragons import DragonAPI
def reboot_host(line):
    api = DragonAPI(line,
                username='admin',
                password='dragonadmin')
    r = api.reboot() 
    print(r)
    api.reboot
with open('test.txt', 'r') as f:
    for line in f.readlines():
        line = line.rstrip()
        reboot_host(line)

теперь вопрос как его ускорить

Офлайн

#8 Окт. 28, 2018 14:57:13

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Помогите собрать до конца скрипт с API

Запускать несколько потоков например.



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version