脚本作用:配合crontab,对myql的情况进行监控,定时发送邮件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
#!/usr/bin/env python # coding=utf-8 from email import encoders from email.header import Header from email.mime.text import MIMEText from email.utils import parseaddr, formataddr import smtplib import MySQLdb def _format_addr(s): name, addr = parseaddr(s) return formataddr(( \ Header(name, 'utf-8').encode(), \ addr.encode('utf-8') if isinstance(addr, unicode) else addr)) from_addr = '****@163.com' password = '******' to_addr = '******@qq.com' smtp_server = 'smtp.163.com' msg = MIMEText('please check', 'plain', 'utf-8') msg['From'] = _format_addr(u'服务器监控 <%s>' % from_addr) msg['To'] = _format_addr(u'管理员 <%s>' % to_addr) print 'msg is :' % msg try: server = smtplib.SMTP(smtp_server, 25) server.set_debuglevel(1) server.login(from_addr, password) conn = MySQLdb.connect(host='localhost',user='root',passwd='*****',port=3306) cur=conn.cursor() conn.select_db('mysql') count = cur.execute('select count(*) from user') print count cur.close() conn.close() msg = MIMEText('everything is ok.', 'plain', 'utf-8') msg['Subject'] = Header(u'Mysql 正常', 'utf-8').encode() server.sendmail(from_addr, [to_addr], msg.as_string()) except MySQLdb.Error,e: msg['Subject'] = Header(u'Mysql 出现异常,请及时排查', 'utf-8').encode() print "Mysql Error %d: %s" % (e.args[0], e.args[1]) server.sendmail(from_addr, [to_addr], msg.as_string()) finally: server.quit() |
Latest posts by Zhiming Zhang (see all)
- aws eks node 自动化扩展工具 Karpenter - 8月 10, 2022
- ReplicationController and ReplicaSet in Kubernetes - 12月 20, 2021
- public key fingerprint - 5月 27, 2021