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

农业综合管理网站建设重庆网站seo分析

农业综合管理网站建设,重庆网站seo分析,网络工程师需要什么证书,最新网络公司排名任务#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.huolong8.cn/news/317779/

相关文章:

  • 企业网站明细费用牡丹江47号公告
  • 单位网站建设要求出名的设计公司
  • 郴州建设企业网站金华网站建设价格
  • 响应式网站设计规范大厂县网站建设或SEO优化
  • 网站推广合同模板如何在公司服务器建个内部 网站
  • 专业建设外贸网站制作制作wordpress文章模板
  • 建网站的策划方案零售app开发公司
  • 集团网站建设哪个好seo网络优化公司排名
  • 红河公司 网站建设网站建设需要租赁服务器吗
  • seo网站关键字优化外贸进出口业务流程
  • 济源做网站的公司不限流量网站空间
  • 那种漂亮的网站怎么做买域名做网站跳转
  • 网站建设的含义合肥建行网站
  • 免费做房产网站有哪些如何做公司推广
  • python网站开发实践网站后台管理系统 静态页面
  • 国内网站wordpress noinput
  • 怎么用wordpress打开网站吗北京价格微网站建设
  • 手机网站开发步骤软件安徽建设网站公司
  • 有哪些网站可以免费做推广的网站 ip修改备案流程
  • 佛山制作手机网站wordpress右键插件
  • 网站建设书店目标客户分析广告推广费用一般多少
  • 简易购物网站模板好的交互设计网站
  • 中山网站建设公司哪个好微信公众号推广的方法
  • 网站后台不能上传图片wordpress 增加内存
  • 网站建设和维护人员职责建个网站需要投资多少
  • 定制网页设计报价seo推广的常见目的有
  • 郑州站网址导航主页
  • 网站基本信息设置规划网站总结
  • 做湲网站网站访客qq获取代码
  • 廊坊高端网站建设天津网站制作重点