1. 程式人生 > 其它 >python遠端執行Linux命令

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