# - * -编码:utf - 8 - * # !/bin/env python “‘ #身份验证:卡尔 #功能:发布版本 #日期:2017/6/27 #版本:V1.0 “‘ 导入系统,再保险、时间、日期时间 进口paramiko 导入日志 进口ConfigParser 进口回溯 进口MySQLdb 进口平台 进口xlrd 重载(系统) sys.setdefaultencoding (“utf - 8”) 如果“Linux”==platform.system (): Excelpath="/home/appdeploy/版本/版本” 其他: Excelpath=" D: \ \汽车\ \ \版本发布” 类Mysql_connect(对象): def __init__(自我,*阿格雷): self.port=阿格雷[0] self.passwd=阿格雷[1] self.username=阿格雷[2] self.host=阿格雷[3] self.version=阿格雷[4] def File_get(自我): Excelfilepath=" {path} _ {version}/Filelist.xlsx”.format (=Excelpath路径、版本=self.version) 工作簿=xlrd.open_workbook (Excelfilepath) booksheet=workbook.sheet_by_name (“Sheet1”) self.p=列表() 的行范围(booksheet.nrows): row_data=[] 上校的范围(booksheet.ncols): 厘米/秒=booksheet.cell(行,上校) val=cel.value 试一试: val=cel.value val=re.sub (r \ s +,”, val) 除了: 通过 如果类型(val)==浮动: val=int (val) 其他: val=str (val) row_data.append (val) self.p.append (row_data) self.__Mysql_deal () def __Mysql_deal(自我): 试一试: 反对=MySQLdb.connect(用户=self.username passwd=self.passwd db=皏ersion_release”,端口=int (self.port) charset=皍se utf8”) dt=datetime.datetime.now () .strftime (“% Y - % m - H % d %: % m: % S”) 光标=con.cursor () cursor.execute(“创建表如果不存在版本(INT Id主键AUTO_INCREMENT \ 文件VARCHAR(30)默认为空,Release_date时间戳、教学文本)”) sql=" "“插入版本(文件、Release_date指令)值(% s, % s % s)“”“ self.p价值: valuse=(价值[0],dt,价值[1]) 结果=cursor.execute (sql, valuse) cursor.close () con.commit () con.close () 除了MySQLdb.Error, e: 打印”错误% d: % s“% (e.args [0], e.args [1]) sys.exit (1) def File_deal(自我): 试一试: ssh=paramiko.SSHClient () ssh.set_missing_host_key_policy (paramiko.AutoAddPolicy ()) ssh.connect (self.host, 22岁的“根”,“* * * *”,超时=5) 在self.p名字: route_0[0]=名字 路线=name [1] cmd=" \ cp中{path} _ {version}/{文件名}xls {dir_new}”.format(路径=Excelpath版本=self.version文件名=route_0 dir_new=路线) stdin、stdout stderr=ssh.exec_command (cmd) 在stdout.readlines out_msg (): 打印out_msg 除了例外,e: 打印恐怖' % s \ \ n ' % (self.host), e ssh.close () def main (): 阿格雷=(“3306”,“* * * * *”,“根”,“xx.xx.xx.xx”,“3.0”) stg=Mysql_connect(*阿格雷) stg.File_get () stg.File_deal () if __name__==癬_main__”: 试一试: main () 除了例外e: 打印traceback.format_exc ()