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...