python远程执行Linux命令
1、安装paramiko包
pip3 install paramiko
2、代码详解
部署环境执行直接用os.popen
import os
""" 当前环境执行shell """ def exeShell(reqdata): print(reqdata) tmp = os.popen(reqdata).readlines() tmp = tmp[0].replace('\n', '') return tmp
远程环境执行用ssh
import paramiko
""" reqdata :执行语句 hostname : ip username : 环境登录账号 password :环境登录密码 """ def exeShellSHH(reqdata,hostname,username,password): print(reqdata) #创建ssh对象 ssh = paramiko.SSHClient() #允许连接不在know_hosts文件中的主机 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接服务器 ssh.connect(hostname=hostname,port=22,username=username,password=password) #执行命令 stdin,stdout,stderr = ssh.exec_command(reqdata) #获取命令结果 result = stdout.read() #将types转为str result = result.decode('UTF-8').replace('\n', '') ssh.close() return result
判断执行的环境是否是部署环境
def isIplocal(ip): shell = "ifconfig |grep eth0 -A 1|tail -n 1|awk -F ':' '{print $2}'|awk '{print $1}'" iplocal = exeShell(shell) if ip == iplocal: return True else: return False

浙公网安备 33010602011771号