python遠端執行Linux命令
阿新 • • 發佈:2021-12-15
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