python3連線Linux伺服器並操作

2021-09-07 03:04:45 字數 2532 閱讀 4015

import paramiko

import logging

import sys

import os

# 加入日誌

# 獲取logger例項

logger = logging.getlogger("basespider")

# 指定輸出格式

formatter = logging.formatter('%(asctime)s\

%(levelname)-8s:%(message)s')

# 檔案日誌

file_handler = logging.filehandler("operation_theserver.log")

file_handler.setformatter(formatter)

# 控制台日誌

console_handler = logging.streamhandler(sys.stdout)

console_handler.setformatter(formatter)

# 為logge新增具體的日誌處理器

logger.addhandler(file_handler)

logger.addhandler(console_handler)

logger.setlevel(logging.info)

class theserverhelper():

"""初始化函式構造

其中remote有兩個作用,除了字面的伺服器路徑外

還作為執行的語句"""

def __init__(self,serverip,username,password,remote,local_dir='',ftptype='',port=22):

self.serverip = serverip

self.username = username

self.password = password

self.port = port

self.ftptype = ftptype

self.remote = remote

self.local_dir = local_dir

#ssh連線伺服器,用於命令執行

def ssh_connectionserver(self):

try:

# 建立ssh物件

sf = paramiko.sshclient()

# 允許連線不在know_hosts檔案中的主機

sf.set_missing_host_key_policy(paramiko.autoaddpolicy())

# 連線伺服器

sf.connect(hostname=self.serverip, port=self.port, username=self.username,

password=self.password)

stdin, stdout, stderr = sf.exec_command(self.remote)

result = stdout.read()

print(result)

except:

logger.error("sshconnection" +self.serverip+"failed!")

return false

return true

def ftp_connectionserver(self):

try:

# 建立ftp物件

sf = paramiko.transport(self.serverip, self.port)

sf.connect(username=self.username,password=self.password)

sftp = paramiko.sftpclient.from_transport(sf)

except:

logger.error("ftpconnection "+self.serverip+" failed!")

return false

"""定義引數ftptype:

ftptype=2 單個檔案向伺服器上傳

ftptype=4 資料夾下內容上傳"""

local_path = os.path.dirname(self.local_dir)

if self.ftptype==1:

if not os.path.exists(local_path):

os.makedirs(local_path)

sftp.get(self.remote,self.local_dir)

sf.close()

return true

elif self.ftptype==2:

sftp.put(self.local_dir,self.remote)

sf.close()

return true

else:

logger.error("伺服器路徑:"+self.remote+"本地路徑:"+self.local_dir)

return false

Python3 連線資料庫

author runfas description 利用tkinter建立乙個登入資料庫的視窗 time 2018 2 8 weichat srf80556635 15992667848 一 本文介紹python3 連線資料庫的操作 winodw平台下,其他平台暫時沒試過 1.pymysql介紹 p...

python3連線MySQL資料庫

在學習head first python 第7掌的時候,學習到用flask寫乙個web頁面,並把查詢到資料儲存在資料庫中 其中一段 def log request req flask request res str none import pymysql 書中介紹的是import mysql.con...

Python3連線MySQL並執行語句

完整流程 import pymysql test pymysql.connect localhost root root test1225 curs test.cursor curs.execute drop table if exists xixi sql create table xixi na...