Python-查数据库-邮件告警

Python-查数据库-邮件告警

一个python写的简单的查数据库脚本,配合crontab和邮件实现定时监控和告警。

监控脚本

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
#!/opt/python3/bin/python3
import smtplib
from email.mime.text import MIMEText
import pymysql
import datetime

dd=(datetime.datetime.now()+datetime.timedelta(days=-1)).strftime("%Y-%m-%d")
print (dd)

db = pymysql.Connect(host='10.0.0.1',port=3306,user='root',passwd='123456',db='testdb',charset='utf8')
cursor = db.cursor()

sql = "select * from t_farm where time='"+dd+"';"
cursor.execute(sql)

row=cursor.rowcount
#print (row)

if row == 0 :
msg = MIMEText(dd+'的条目数是: '+str(row)+' ,请检查。','plain','utf-8')
from_addr = 'biglovewheat@126.com'
password = 'GQYRFCDKEXEIHQGH' ## 邮箱的授权密码,非用户密码
to_addr = ['biglovewheat@126.com','aa@126.com']
smtp_server = 'smtp.126.com'
msg['From'] = from_addr
msg['To'] = ','.join(to_addr)
msg['Subject'] = 'Python脚本告警'
server = smtplib.SMTP_SSL(smtp_server,465)
server.login(from_addr,password)
server.sendmail(from_addr,to_addr,msg.as_string())
server.quit()

crontab

1
31 4 * * * /data/app/moni.py >> /data/app/moni.log 2>&1