Python子进程在远程机器上执行?

时间:2016-12-02 10:29:38

标签: linux python-2.7 subprocess

我必须编写一个脚本来从远程主机获取信息,这样的内核版本,df -h,正常运行时间等等。那么如何使用函数在远程端执行,或者还有其他方法来执行它。示例代码如下,感谢有人可以帮助我。

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')

1 个答案:

答案 0 :(得分:0)

您可以使用 Fabric

在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 user@server1,user@server2 host_kernel_release_name_df

您可以运行多个def:

fab -H user@server1,user@server2 host_type host_kernel

Fabric网站:http://www.fabfile.org/

Python中的其他SSH命令: https://wiki.python.org/moin/SecureShell