1. 程式人生 > 實用技巧 >python遠端操作linux伺服器

python遠端操作linux伺服器

首先安裝模組:pip install paramiko

參考官方文件用法:http://docs.paramiko.org/en/2.0/api/client.html

獲取linux伺服器的ip,程式碼如下:

import paramiko
import re


class GetLinuxIp():
    '''獲取linux伺服器ip'''

    def __init__(self, hostname, port, username, password, cmds):
        '''

        :param hostname: linux主機的ip
        :param port: linux主機的埠
        :param username: linux主機登入使用者名稱
        :param password: linux主機登入密碼
        :param cmds: 需要執行的linux命令
        
''' self.ip = hostname self.port = port self.user = username self.password = password self.cmds = cmds try: self.client = paramiko.SSHClient() # 例項化客戶端 # 儲存伺服器的主機名和金鑰資訊 self.client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
# 連線服務端,進行身份驗證 self.client.connect(self.ip, self.port, self.user, self.password, timeout=10) print("連線成功...") except Exception as e: # raise e print("連線失敗,錯誤是{}".format(e)) raise e def excute_command(self): '''執行命令''' #
todo stdin是標準輸入檔案,stdout是標準輸出檔案,stderr標準出錯檔案,應用在輸出的重新定位上。 self.stdin, self.stdout, self.stderr = self.client.exec_command(self.cmds) def get_result(self): '''獲取結果''' result = self.stdout.read().decode() pattern = re.compile(r'((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})(\.((2(5[0-5]|[0-4]\d))|[0-1]?\d{1,2})){3}') self.ip = pattern.search(result).group() print("獲取到linux伺服器的ip是:{}".format(self.ip)) def __del__(self): '''關閉連線''' self.client.close() print("連線關閉...") if __name__ == '__main__': linux = GetLinuxIp("121.196.120.113", 22, "root", "123_Xiaohaikun", "ifconfig") linux.excute_command() linux.get_result()

執行結果如圖: