2016-12-02 1 views
0

Мне нужно написать сценарий для получения информации от удаленных хостов, таких как версия ядра, df -h, время безотказной работы и т. Д. Итак, как использовать функцию для выполнения на удаленной стороне или есть какой-либо другой способ ее выполнения. Пример кода, как показано ниже, оцените, если кто-то может помочь мне в этом.Подпроцесс Python выполняется на удаленных машинах?

def GetKernel(): 
     krnl=platform.release() 
     print(krnl) 


def SSHserver(server): 
     sshProcess = subprocess.Popen(["ssh", server, GetKernel()], 
         shell=False, 
         stdout=subprocess.PIPE, 
         stderr=subprocess.PIPE) 
     sshProcess.stdin.write(MountPointChecker()) 
     print(sshProcess) 

SSHserver('192.168.10.123') 

ответ

0

Вы можете использовать ткань.

Firt установить пакет ткани, в Debian 8:

apt install fabric 

Создайте файл с именем fabfile.py, содержание здесь:

#!/usb/bin/env python2 
# File fabfile.py 
from fabric.api import run 

def host_type(): 
    run('uname -s') 

def host_kernel(): 
    run('uname -r') 

def host_kernel_release_name_df(): 
    run('uname -r') 
    run('lsb_release -ds') 
    run('hostname') 
    run('df -TPh') 

Теперь, чтобы выполнить в удаленном сервере:

fab -H [email protected],[email protected] host_kernel_release_name_df 

Вы можете запустить несколько определений:

fab -H [email protected],[email protected] host_type host_kernel 

Ткань Веб-сайт: http://www.fabfile.org/

Другие команды SSH в Python: https://wiki.python.org/moin/SecureShell

+0

Спасибо за ответ, Im не в состоянии установить любое программное обеспечение или инструменты в серверах Linux. Поэтому я должен использовать модули по умолчанию и версию python 2.6. – SLS

+0

Вам действительно нужен скрипт на python? Потому что без плагина сложно. Иначе вы можете попробовать в чистом баше. –

+0

Спасибо, друг, да, я понимаю, это немного сложно – SLS