""" paramiko, wmi实现windows/linux脚本调用 """ import paramiko import sys import pythoncom import wmi pythoncom.CoInitialize() class ServerByPara(object): def __init__(self, cmd, host, user, password, system_name): self.cmd = cmd self.client = paramiko.SSHClient() self.host = host self.user = user self.pwd = password self.system_name = system_name def exec_linux_cmd(self): data = '' self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) self.client.connect(hostname=self.host, username=self.user, password=self.pwd) stdin, stdout, stderr = self.client.exec_command(self.cmd, get_pty=True) for i in stdout.readlines(): data += i return data def exec_dos_cmd(self): pythoncom.CoInitialize() conn = wmi.WMI(computer=self.host, user=self.user, password=self.pwd) # filename = r"C:\Users\Administrator\Desktop\test.bat" # 此文件在远程服务器上 cmd_callbat = r"cmd /c call %s" % self.cmd id, value = conn.Win32_Process.Create(CommandLine=cmd_callbat) # 执行bat文件 print(id, value) def run(self): if self.system_name == "Linux": data = self.exec_linux_cmd() print(data) else: self.exec_dos_cmd() if __name__ == '__main__': # script,ip,user,password,system server_obj = ServerByPara(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[4]) # server_obj = ServerByPara("/root/test.sh param01 param02", "22222222", "root", "22222222") server_obj.run()
Linux/Windows下远程脚本执行 | paramiko/wmi | Python
猜你喜欢
转载自www.cnblogs.com/pymkl/p/9184737.html
今日推荐
周排行