标签:cep author logs lap .com 命令 use 处理 from
是一个运维自动化管理项目:
为了减少人工干预,降低人员成本 ---资产管理 --操作管理
避免人员直接操作服务器,使用后台去统一操作
注意:数据是由服务器agent主动发送至API
实现方案:
本地执行cmd命令。 方法一:os.system("命令") 不可以返回数据 方法二:subprocess模块,使用进程执行命令,可以获取到数据Popen("命令"),进程.stdout.read()<py2>或者直接getoutput("命令")<py3>
def agent(self,cmd): import subprocess try: ret = subprocess.getoutput(cmd) except AttributeError: sub = subprocess.Popen(args=cmd,shell=True,stdout=subprocess.PIPE) sub.wait() ret = sub.stdout.read() return ret
def ssh(self,cmd): import paramiko #1.创建SSH对象 ssh = paramiko.SSHClient() #2.加上这句话不用担心选yes的问题,会自动选上 #3.用ssh连接远程主机时,第一次连接时会提示是否继续进行远程连接,选择yes ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(hostname="远程主机名",port="远程端口",username="用户名",password="密码") #执行命令,获取结果到标准输入\出\错误流中 stdin,stdout,stderr = ssh.exec_command(cmd) #4.获取命令结果 result = stdout.read() #5.关闭连接 ssh.close()
def ssh(self,cmd): import paramiko #1.创建SSH对象 ssh = paramiko.SSHClient() #2.加上这句话不用担心选yes的问题,会自动选上 #用ssh连接远程主机时,第一次连接时会提示是否继续进行远程连接,选择yes ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #3.获取私钥 private_key = paramiko.RSAKey.from_private_key_file("文件:其中保存了私钥,用于解密") #4.通过私钥去连接远程服务器(前提是自己的公钥已经在对方的authorized_keys文件中,paramiko已实现) ssh.connect(hostname="远程主机名",port="远程端口",username="用户名",pkey="私钥private_key") #5.执行命令,获取结果到标准输入\出\错误流中 stdin,stdout,stderr = ssh.exec_command(cmd) #6.获取命令结果 result = stdout.read() #7.关闭连接 ssh.close() return result
标签:cep author logs lap .com 命令 use 处理 from
原文地址:https://www.cnblogs.com/ssyfj/p/9060367.html