python实现跨机器执行shell

1.安装python

2.安装pip: easy_install pip

3.安装selenium:pip install -U selenium


案例一  跨机操作 

baas/executeShell2.py

1.主机地址 2.用户名 3.密码 4.路径 5.shell命令(需要用单引号阔起来) 6.执行命令后休眠时间

# -*- coding: utf-8 -*-

import os

import sys

import time

import re

try:

    import pxssh

except:

    from pexpect import pxssh

import getpass

def insertOne(strHostIP, strUserName, strPassword, path, shell, sleeptime):

    msg = ""

    try:

        # 调用构造函数,创建一个 pxssh 类的对象.

        s = pxssh.pxssh()

        # 利用 pxssh 类的 login 方法进行 ssh 登录,原始 prompt 为'$' , '#'或'>'

        s.login(strHostIP, strUserName, strPassword, original_prompt='[$#>]', login_timeout=10, port=36000)

        strCmd = "cd %s" %(path)

        print(strCmd)

        s.sendline(strCmd)

        s.prompt()

        # 发送命令

        strCmd = "%s" %(shell)

        print(strCmd)

        s.sendline(strCmd)

        # 增加超时时长

        time.sleep( int(sleeptime) )

        # 匹配 prompt,prompt超时时长默认30s

        s.prompt()

        # 将 prompt 前所有内容打印出,即命令  的执行结果.

        msg = s.before

        s.sendline('exit')

        p = msg.find('\n',1)

        msg= msg[p+1:]

        msg = msg.replace("\n","")


    except pxssh.ExceptionPxssh, e:

        msg = str(e)

    return msg

if __name__=="__main__":

    if len(sys.argv) < 4:

        print("参数错误: 1.主机地址 2.用户名 3.密码")

        sys.exit(1)

    sleeptime = "0"

    strHostIP = sys.argv[1]

    strUserName = sys.argv[2]

    strPassword = sys.argv[3]

    path = sys.argv[4]

    shell = sys.argv[5]

    sleeptime = sys.argv[6]

    print("TEST")

    print("RESULT="+insertOne(strHostIP, strUserName, strPassword, path ,shell, sleeptime))

你可能感兴趣的:(python实现跨机器执行shell)