# -*- coding: UTF-8 -*-
import os
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.header import Header
from time import sleep
from glob import glob
import datetime
def send_mail(status):
if status == '成功':
msg = MIMEText(f'发布状态:{status}', 'plain', 'utf-8')
print(222)
else:
cname = get_fail_cityname()
msg = MIMEText(f'发布状态:{status},{cname}没有上报成功 ','plain', 'utf-8')
msg['From'] = formataddr(["lg", mail_user])
msg['To'] = formataddr(["河北", receivers])
subject = '上报情况'
msg['Subject'] = Header(subject,'utf-8')
server = smtplib.SMTP_SSL(mail_host, 465)
server.login(mail_user, mail_passwd)
server.sendmail(mail_user,[receivers,receivers2], msg.as_string())
server.quit()
def str_date():
yestoday = datetime.date.today()
str_yestody = yestoday.strftime('%Y%m%d') # 20220211
return str_yestody
def get_fail_cityname():
for i in city:
if i not in get_city: #得到缺失的城市名称
return citycode[i]
if __name__ == '__main__':
path = r'C:\Users\lg\Desktop\study\Python\2'
citycode = {'130200':'唐山市','130300':'秦皇岛市','130400':'邯郸市',
'130500':'邢台市','130600':'保定市','130700':'张家口市',
'130800':'承德市','130900':'沧州市','131000':'廊坊市','131100':'衡水市'}
city = ['130200', '130300', '130400', '130500', '130600', '130700', '130800', '130900', '131000', '131100']
get_city = []
sucess_num = 10
mail_host = 'smtp.126.com'
mail_port = 465
mail_user = 'lig3@126.com'
mail_passwd = 'DJEXSOCRR'
receivers = '1698@qq.com'
receivers2 = 'hb@163.com'
os.chdir(path)
dd = str_date()
while 1:
list = glob(f'*{dd}.end')
if list:
for i in list:
get_city.append(i[:6])
num = len(list)
print('检测到已经发布')
if num == sucess_num:
a = '成功'
send_mail(a)
sleep(46200)
else:
a = '失败'
send_mail(a)
sleep(46200)
else:
sleep(300)
print('没有发布,再次检测')
shell调用 check.sh:
#!/bin/bash
num=`ps aux |grep submit |grep -v 'grep' |wc -l`
if [ ${num} -eq 0 ];then
/public/software/anaconda/bin/python /root/lg/submit.py &
else
exit
fi