Найти - Пользователи
Полная версия: Python скрипт запись результата выполнения системных программ
Начало » Python для экспертов » Python скрипт запись результата выполнения системных программ
1
Djam36
Добрый всем вечер, столкнулся с такой проблемой
Есть сервера, доступные по 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, тоже самое проделать с ней, закрыть соединение с сервером, открыть другой сервак, сделать тоже самое, и в итоге записать результат в один файл на сервак, на котором и будет исполнятся скрипт. Что-то у меня мозгов не хватает(
py.user.next
Djam36
как перехватить вывод этой команды например?

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

output = stdout.read()

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

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

1. Напиши функцию, которая выполняет действия над одной группой серверов на базе функции, которая выполняет действия над одним сервером.
2. Напиши функцию, которая выполняет действия над одним сервером.
Alen
Djam36
Есть сервера, доступные по ssh, нужно зайти на каждый сервер выполнить определенный список команд типа
top
date
fabric же
http://docs.fabfile.org/en/1.9/
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB