• python-(subprocess, commands)


    class Exe_local_command():
    def __init__(self, command):
    '''

    :param command:
    '''
    self.command = command
    def exe_command(self):
    '''

    :return:
    '''
    exitstatus, exitresult = commands.getstatusoutput(self.command)
    return exitstatus, exitresult

    def find_shell(self):
    '''
    @summary:find: find_command = 'find /tmp/atp1 -name "*.log.*"'
    :return:
    '''
    find_status, find_result = self.exe_command()
    if find_status == 0 and len(find_result) > 0 and find_result.find("No such file or directory") == -1:
    return find_result

    class Exe_remote_command():
    def __init__(self, command, ip, port, user, password):
    '''

    :param command:
    '''
    self.command = command
    self.ip = ip
    self.port = port
    self.user = user
    self.password = password

    def exe_command(self):
    '''

    :return:
    '''
    completed_command = ('ssh -o StrictHostKeychecking=no -p {0} {1}@{2} "{3}"'.format(self.port, self.user, self.ip, self.command))
    if self.password != None:
    completed_command = "sshpass -p {0} {1}".format(self.password, completed_command)

    sub_process = subprocess.Popen(completed_command, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=True)
    outtext = ''

    #实时获取命令执行的信息
    while sub_process.poll() is None:
    line = sub_process.stdout.readline()
    outtext += line
    line = line.strip()

    exitstatus = sub_process.returncode
  • 相关阅读:
    通过socket,实现简易版的通讯
    控制台报错[WDS] Disconnected!
    js里面可以提升性能的有哪些方法
    构造函数与普通函数的区别
    事件循环(event loop)
    二维数组的创建以及简单举例
    es5数组的api(了解)
    字符串的api (基础)
    git常用命令
    连接MongoDB失败,处理办法
  • 原文地址:https://www.cnblogs.com/ting152/p/12580516.html
Copyright © 2020-2023  润新知