当前位置: 首页 > news >正文

网站开发哪个更专业广州少儿编程培训机构

网站开发哪个更专业,广州少儿编程培训机构,查企业信息查询平台哪个好,毕节建设局网站任务#xff1a;应帅气的领导要求#xff0c;需要监控生产环境mysql和mongo数据库服务。不仅要connect successful还要进行数据交互进一步确认数据库服务正常。思路#xff1a;mysql和mongo 数据库ip、端口、用户名、密码、认证库(mongo)分别写在mysqldb_message.txt和mongo…任务应帅气的领导要求需要监控生产环境mysql和mongo数据库服务。不仅要connect successful还要进行数据交互进一步确认数据库服务正常。思路mysql和mongo 数据库ip、端口、用户名、密码、认证库(mongo)分别写在mysqldb_message.txt和mongodb_message.txt两个文件中。查询脚本db_test.py,邮件脚本sendEmail.py格式如下mysqldb_message.txthost:192.168.0.32 user:test passwd:123456 port:3306host:192.168.0.222 user:test passwd:123456 port:3307host:192.168.1.101 user:cctest passwd:Yj7netlkj port:3990mongodb_message.txthost:192.168.1.101 user:errorbook passwd:wangyue port:37017 authDB:adminhost:127.0.0.1 user:qingcong passwd:qingcong port:27017 authDB:admin.查询脚本db_test.py:需要注意的是1、由于Python3.6pymongo模块中的MongoClient函数连接mongo数据库时超时参数connecttimeOutMS并不会生效(亲测),并且如果仅仅用MongoClient连接mongo数据库而不对数据库内的数据进行交互那么无论MongoClient返回的是正确的连接对象还是发生了错误Python3.6均不会报错。所以必须要对数据库数据进行交互才能确定数据库服务是否正常2、由于mongo超时时间大概在30多秒左右因此引入Python提供的超时函数timeout_decorator.timeout()但此函数对不同的操作系统用法不一样。此脚本在windows环境下运行会报错。#!/usr/bin/env python#encoding: utf-8#author: 847907826qq.com#注意需要在Linux环境下Python3以上版本执行且需要安装pymysql、pymongo、timeout_decorator模块import reimport timeimport pymysqlimport timeout_decoratorfrom pymongo import MongoClientimport syssys.path.append(/tools/scripts)   # /tools/scripts脚本目录导入进sys.path中为后续才能调用send_mail函数from sendEmail import send_mail#定义host、user、passwd、port、auth_db列表用与存储数据库信息host  []user  []passwd  []port  []auth_db  []#mysql配置信息文件路径mysql_file  /tools/scripts/mysqldb_message.txt#data format: host:192.168.1.101 user:errorbook passwd:wangyue port:37017 authDB:adminmongo_file  /tools/scripts/mongodb_message.txt# data format: host:172.17.0.2 user:root passwd:123456 port:3306#获取mysql_db的配置信息def get_message_mysqldb():print(读取mysql数据库详细信息文件中请稍后....)        # time.sleep(1)with open(mysql_file, r) as source:lines  source.read().splitlines()  # splitlines 去除空行即不保留每行结尾的\n否则读取的每行中末尾均有\ni  0for char in lines:                        if char.strip() ! :  # 去掉字符串前后的空格char  re.split([ :], lines[i])  # 以空格和分号作为空格符进行分割num  1host.append(char[num])user.append(char[num  2])passwd.append(char[num  4])port.append(char[num  6])i  i  1print(读取完成\n---------------------------)        return host, user, passwd, port#获取mongodb_db的配置信息def get_message_mongodb():with open(mongo_file, r) as source:lines  source.read().splitlines()i  0for char in lines:                        if char.strip() ! :  # 去掉字符串前后的空格char  re.split([ :], lines[i])  # 以空格和分号作为空格符进行分割num  1host.append(char[num])user.append(char[num  2])passwd.append(char[num  4])port.append(char[num  6])auth_db.append(char[num  8])i  i  1return host, user, passwd, port, auth_db#连接mysql数据库def mysqldb_connect_and_test(ip, user, passwd, port):print(连接mysql数据库{0}中请稍后.....format(ip))        # time.sleep(1)try:                # print(ip:{0}, user:{1}, passwd:{2}, port:{3}.format(ip, user, passwd, port))conn  pymysql.connect(hostip,useruser,passwdpasswd,portint(port),charsetutf8,connect_timeout3)print(连接成功执行测试语句中...)                with conn.cursor() as cur:sql  select 1 from duala  str(cur.execute(sql))print(successful! 进一步确认数据库服务正常。执行结果--a: {0}.format(a))        except Exception:print(发生异常,数据库连接失败服务器ip{0}.format(ip), Exception)send_mail(监控中心, [吴青聪], [], 测试email, (测试)邮件内容python检测到mysql数据库异常服务器为{0}.format(host), )        else:print(连接成功{0}\n.format(ip))#连接mongodb数据库timeout_decorator.timeout(3)def mongodb_connect_and_test(ip, user, passwd, port, auth_db):print(请稍等连接mongodb中...)        try:client  MongoClient(ip, int(port))                # 利用server_info()判断mongodb状态dbnames  client.server_info()  #print(dbnames)                #利用authenticate判断mongodb状态db  client[auth_db]result  db.authenticate(user, passwd)        except Exception as es:print(Error连接失败服务器ip{0}.format(ip), es)send_mail(监控中心, [吴青聪], [], 测试email, (测试)邮件内容python检测到mongo数据库异常服务器为{0}.format(host), )        else:print(Successful连接mongodb成功测试语句执行成功)client.close()#清空列表变量def clear_list():host.clear()user.clear()passwd.clear()port.clear()def main():# 检查mysqlprint(检查mysql数据库)get_message_mysqldb()index  0for ip in host:print(------------------------)mysqldb_connect_and_test(ip, user[index], passwd[index], port[index])index  index  1clear_list()  # 清空变量列表#检查mongodbprint(\n检查mysql数据库)get_message_mongodb()index  0for ip in host:print(------------------------)                # print(ip:{0}, user:{1}, passwd:{2}, port:{3}.format(ip, user[index], passwd[index], port[index]))mongodb_connect_and_test(ip, user[index], passwd[index], port[index], auth_db[index])index  index  1if __name__  __main__:main()发送邮件脚本sendEmail.py:#!/usr/bin/env python#encoding: utf-8import smtplib  # 加载smtplib模块import tracebackfrom email.header import Headerfrom email.mime.application import MIMEApplicationfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.utils import parseaddr, formataddrlogin_name  monitor7net.cc  # 发件人邮箱账号为了后面易于维护所以写成了变量login_pass  ******           # 邮箱密码此处隐藏^_^smtp_port  465def _format_addr(s):name, addr  parseaddr(s)return formataddr(( \Header(name, utf-8).encode(), \addr))# addr.encode(utf-8) if isinstance(addr, unicode) else addr))def send_mail(sender, recps, Ccs, subject, htmlmsg, fileAttachment):# 参数分别是发送人邮箱、收件人邮箱、抄送人邮箱、主题、内容、附件如果看不懂此处代码知道如何使用即可smtpserver  smtp.exmail.qq.comreceivers  recps  Ccstry:        # msg  MIMEText(htmlmsg, html, utf-8)msg  MIMEMultipart()msg.attach(MIMEText(htmlmsg, html, utf-8))        # msg[Subject]  subjectmsg[Subject]  Header(subject, utf-8).encode()        # msg[From]  sendermsg[From]  _format_addr(sender)Recp  []        for recp in recps:Recp.append(_format_addr(recp))ccs  []        for cc in Ccs:ccs.append(_format_addr(cc))msg[To]  ,.join(Recp)msg[Cc]  ,.join(ccs)        # if fileAttachment! :#     # 附件for file in fileAttachment:part  MIMEApplication(open(file, rb).read())attFileName  file.split(/)[-1]part.add_header(Content-Disposition, attachment, filenameattFileName)msg.attach(part)        # part  MIMEApplication(open(fileAttachment, rb).read())# part.add_header(Content-Disposition, attachment, filenamefileAttachment)# msg.attach(part)smtp  smtplib.SMTP_SSL()smtp.connect(smtpserver, smtp_port)smtp.login(login_name, login_pass)        #      smtp.login(username, password)smtp.sendmail(sender, receivers, msg.as_string())smtp.quit()print(SendEmail success)except:traceback.print_exc()--------------------------------------本文转自枕着稻香博客51CTO博客如需转载请联系作者授权原文链接https://blog.51cto.com/wuqingcong/2356570
http://www.zqtcl.cn/news/524324/

相关文章:

  • 网站的建设参考文献郑州网站建设中国建设建设银行
  • 重庆那些公司的网站是网易做的电信100m光纤做网站
  • 网站怎么设计产品营销策略包括哪些内容
  • 天元建设集团有限公司破产重组河源seo排名
  • 网站权重什么意思seo的搜索排名影响因素有
  • 建设报名系统是正规网站吗计算机培训班出来好找工作吗
  • 网站上的文章用秀米可以做吗宁波外客网络科技有限公司
  • 网站底部导航代码成品视频直播软件推荐哪个好一点ios
  • 上海电商网站开发公司垫江网站建设价格
  • 门户网站建设存在问题与不足商城网站开发项目文档
  • wordpress建站方便吗wordpress加入海报功能
  • 网站名称注册保护2018wordpress主题
  • 类似享设计的网站企业信息系统公示
  • 如何学习网站开发酒店网站源码
  • 怎么用nas做网站服务器WordPress云虚拟空间
  • 网站设计 ipad企业品牌推广宣传方案
  • 织梦网站怎么更换模板济南建设厅网站
  • 用wordpress仿站专业做俄语网站建设司
  • 做暧暧网站网站开发 思维导图
  • asp.net做登录注册网站苏醒的wordpress主题怎么样
  • 正能量不良网站推荐2020网站建设单位是什么
  • 固镇网站建设郑州网站seo顾问
  • 新建定制网站费用公司网站手机端和电脑端
  • 网站域名注册地址苏州建设培训中心网站
  • 高端娱乐网站建设沈阳seo专业培训
  • 做播放器电影网站需要多少钱6广州seo公司推荐
  • 笔记本可以做网站吗怎样查看网站是否备案
  • 千灯做网站网站静态和伪静态意思
  • 做境外碎片化旅游的网站wordpress wdcp
  • 整容医院网络建设公司seo实战技术培训