1. 程式人生 > 程式設計 >Python使用Paramiko控制liunx第三方庫

Python使用Paramiko控制liunx第三方庫

paramiko是一個基於SSH用於連線遠端伺服器並執行相關操作(SSHClient和SFTPClinet,即一個是遠端連線,一個是上傳下載服務),使用該模組可以對遠端伺服器進行命令或檔案操作,值得一說的是,fabric和ansible內部的遠端管理就是使用的paramiko來現實。

Paramiko 是Python 用於控制liunx中檔案的第三方庫,可建立檔案,修改,刪除檔案的內容等;

程式碼例項:

# -*- coding:utf-8 -*-
import paramiko
 
class ssh(object):
  def __init__(self,host,port,user,password):
    self.host = host
    self.port = port
    self.user = user
    self.password = password
    self.ssh_client = paramiko.SSHClient()
    self.ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    self.ssh_client.connect(self.host,self.port,self.user,self.password)
 
  #執行指令返回文字字串
  def sftp_exec_command(self,command):
    arrconfiglist = [""]
    try:
      std_in,std_out,std_err = self.ssh_client.exec_command(command)
      for line in std_out:
        arrconfiglist.append(line.strip("\n"))
      del arrconfiglist[0]
      self.ssh_client.close()
      return arrconfiglist
    except Exception as e:
      print(e,"ssh ERROR")
    finally:
      self.ssh_client.close()
 
  #執行指令無返回
  def sftp_exec_norecommand(self,command):
    try:
      self.ssh_client.exec_command(command)
      self.ssh_client.close()
    except Exception as e:
      print(e,"ssh ERROR")
    finally:
      self.ssh_client.close()
 
'''
在別的專案中被呼叫使用如下方法
import ssh as ssh
 
if __name__ == '__main__':
  ssh.ssh().sftp_exec_command("--command information--")
'''
 
'''
if __name__ == '__main__':
  rect = ssh().sftp_exec_command("")
  print(rect)
'''

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。