## nginxのバーチャルホストの設定ファイルのパスとファイル名#######取得 ## HTTPS://github.com/fatiherikli/nginxparser ######### PIPインストールnginxparserの#####を## DEF getconf(): ロードnginxparserインポートから ファイルパス= "の/ etc / nginxの/ confに" os.walk(ファイルパス)での親、にdirnames、ファイル名の: :SET(ファイル名)でのファイル名の ファイル=(はos.path。参加(親、ファイル名)) を印刷(ファイル) の試行: データ=ロード(オープン(ファイル)) T = GetDict(データ、リスト()) D = dictの() D [ "サーバー"] =リスト() Dの[ " ]」聞く=リスト() 上流「] =リスト()D [" :Tにおけるxの X [ "キー"] == "上流"場合: D [ "上流"](X [ "値"])追加。 ELIFのX [ "キー"] == "サーバ名": D [ "サーバ名"]はXの= [ "値"] ELIFのX [ "キー"] == "サーバ": 試す: D [ "サーバ"](X [ "値"])追加。 除い: 合格 のelif X [ "キー"] ==「聞きます" D"(X追加[ "聞く] ["値"]) 、印刷("配置文件为: "ファイル+) 収量D :を除く 渡し ##########再帰的なマルチレベルリストが辞書に変換リストを分割 DEF getDict(X、L =リスト()): A = [ "キー"、 "値"] I xのための: 場合でisinstance(I、リスト): でisinstance(I [0]、リスト)場合: yの中I: #プリント( "#######"、Y) getDict(Y、L) 他: #プリント( "xxxxxxxxxxxxxx:"、辞書(ZIP(I))) l.append(辞書( ZIP(I))) 他: l.append(辞書(ZIP(X))) 戻りL #######获取配置插入数据库######### DEF mysqlConfig(SQL ): 輸入pymysqlの USERNAME = "OPS" PASSWORD = "123456" HOST = "192.168.1.1" ドメイン名CHAR(200)、 DATABASE = "op_nginx" DBCONFIG = pymysql.connect(HOST、USERNAME、PASSWORD、DATABASE) してみてください: プリント(SQL) )(カーソル= dbconfig.cursor してみてください: cursor.execute(SQL) dbconfig.commit() の戻りカーソル などの例外を除き、 E: 合格 :ERRとして例外を除いて プリント(ERR) createNginxConfigtab DEF(): SQL = "" "CREATE TABLEをVIRTUAL_HOSTが存在しない場合( ENV CHAR(32)NOT NULL、 upstreamnameのCHAR(128) 、CHAR(128)frontport backendip CHAR(128) )""" mysqlConfig(SQL) createNginxConfigtab() ###########数据插入########### DEF nginxtbale(ENV、upname、dominame、frontport、backendip) : 試す: SQLは= "" "VIRTUAL_HOST。INSERT INTO(ENV、upstreamname、 ドメイン名、frontport、backendip) VALUES( '{}'、 '{}'、 '{}'、 '{}'、 '{}')" "" .format(ENV、upname、dominame、frontport、 backendip) mysqlConfig(SQL) Eなどの例外を除い。 エラーが#ロールバックが発生した場合 (E)の印刷を #######構成データベース#############読み出すため DEF insertNginxConfigを(): I getConfにするための() 試してみてください。 nginxtbale( "試験"、 " "ジョイン(リスト(セット((iは["上流"]))))、iは["サーバ名が"]。置き換える(""、 " ") "、"。ジョイン(I [ "聞く"])、 " "参加(I ["サーバー"]))。 除い: プリント(I) insertNginxConfig() #########
パイソン読むnginxのバーチャルホストの設定、データベースの挿入myqsql
おすすめ
転載: blog.51cto.com/breaklinux/2402003
おすすめ
ランキング