Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 3, 2014 00:43:06

Djam36
Зарегистрирован: 2014-01-21
Сообщения: 14
Репутация: +  0  -
Профиль   Отправить e-mail  

Python скрипт запись результата выполнения системных программ

Добрый всем вечер, столкнулся с такой проблемой
Есть сервера, доступные по ssh, нужно зайти на каждый сервер выполнить определенный список команд типа
top
date
Записать все это в переменную, проделать это на всех серверах, а потом записать результат выполнения команд на каждом сервере в файл(который будет хранится на сервере на котором запускали скрипт).
Я начал делать все через Paramiko также я понял что бы перехватить результат нужно использовать POPEN
Вот вопросы, как можно это реализовать? если можно пример кода.
Допустим зашли на сервер назовем его тест > выполнили команды > записали в переменную вывод этих команд ( или переменные) > закрыли соединение> сделали тоже самое для остальных серверов > переменные которые получили записали в файл > например log.txt
Спасибо большое за помощь

import subprocess 
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(
    paramiko.AutoAddPolicy())
ssh.connect('127.0.0.1', username='вы', 
    password='loвы')
	stdin, stdout, stderr =  ssh.exec_command ("date +"%y-%m-%d %T")
Вот
stdin, stdout, stderr =  ssh.exec_command ("date +"%y-%m-%d %T")
как перехватить вывод этой команды например? записать её в переменную? и приступить например к следующей комманде? например LS, тоже самое проделать с ней, закрыть соединение с сервером, открыть другой сервак, сделать тоже самое, и в итоге записать результат в один файл на сервак, на котором и будет исполнятся скрипт. Что-то у меня мозгов не хватает(

Отредактировано Djam36 (Сен. 3, 2014 00:44:21)

Офлайн

#2 Сен. 3, 2014 03:36:53

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Python скрипт запись результата выполнения системных программ

Djam36
как перехватить вывод этой команды например?

Djam36
stdin, stdout, stderr = ssh.exec_command ("date +"%y-%m-%d %T")

output = stdout.read()

Djam36
Что-то у меня мозгов не хватает(

Используй метод разработки “сверху вниз”:

1. Напиши функцию, которая выполняет действия над одной группой серверов на базе функции, которая выполняет действия над одним сервером.
2. Напиши функцию, которая выполняет действия над одним сервером.



Отредактировано py.user.next (Сен. 3, 2014 03:43:02)

Офлайн

#3 Сен. 3, 2014 06:30:53

Alen
Зарегистрирован: 2013-08-01
Сообщения: 373
Репутация: +  49  -
Профиль   Отправить e-mail  

Python скрипт запись результата выполнения системных программ

Djam36
Есть сервера, доступные по ssh, нужно зайти на каждый сервер выполнить определенный список команд типа
top
date
fabric же
http://docs.fabfile.org/en/1.9/

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version