博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用python制作在Linux服务器后台定时运行的任务-邮件提醒
阅读量:6436 次
发布时间:2019-06-23

本文共 1850 字,大约阅读时间需要 6 分钟。

1. 自动任务的功能为:

  定时扫描数据库中的记录,然后发邮件

代码如下

scheduleMail.py

import pymysqlimport smtplib  from email.mime.text import MIMEText  from email.header import Header import timedef sendMail(body):    sender = 'xxx@163.com'      receiver = ['abc@xxx.com', 'def@xxx.com', 'ghi@xxx.com']     subject = '邮件主题'      smtpserver = 'smtp.163.com'      username = 'your username'      password = 'your password'          msg = MIMEText(body,'plain','utf-8') #中文需参数‘utf-8',单字节字符不需要      msg['Subject'] = Header(subject, 'utf-8')      msg['From'] = 'xxx
' msg['To'] = "abc@xxx.com', 'def@xxx.com', 'ghi@xxx.com" smtp = smtplib.SMTP() smtp.connect('smtp.163.com') smtp.login(username, password) smtp.sendmail(sender, receiver, msg.as_string()) smtp.quit() def scanLogic(): conn = pymysql.connect(host='服务器IP', user='数据库用户名', passwd='数据库密码', db='数据库名', port=3306, charset='utf8') cur = conn.cursor() sql = "select * from ..." cur = conn.cursor() cur.execute(sql) alldata = cur.fetchall() mailBody = "" separator = "----------------------------------------------\n" for rec in alldata: field1 = rec[0] field2 = rec[1] line = "field1: %s \t field2: %s \n" % (field1, field2) mailBody = mailBody + line + separator print('邮件正文: %s' % mailBody) if (mailBody != ""): sendMail(mailBody) else: print("无可发送邮件")def main(): while (True): time.sleep(1800) scanLogic()main()

 

2. 把它做成后台任务的shell脚本如下

scheduleMail.sh

#!/bin/bashcd /home/yourfolderpython -u scheduleMail.py

 

3. 如何杀死后台任务

这里有个坑,很多网上的博客没有说,我在这里提一下,以免大家重复去踩。

杀死该任务,就像杀死传统Linux进程一样

ps aux|grep scheduleMail
这里你会看到进程号,然后使用命令kill -9 scheduleMail就可以杀死该进程
 
但是,你会发现,进程虽然杀死了,后台任务仍在运行。
为什么呢?
你会你只是杀死了shell脚本的后台进程。
这里,你需要使用命令ps -e查看所有进程,
发现还有python进程在运行,杀死该python进程就好了
这样,整个后台任务就真的被杀死了!
 

转载地址:http://mcega.baihongyu.com/

你可能感兴趣的文章
同步异步阻塞非阻塞杂记
查看>>
2018年中国银行业十件大事,“Fintech深度融合,科技子公司遍地” ...
查看>>
Git SSH 连接phacility服务器
查看>>
【客户案例】智能驾驶行业如何上云?
查看>>
foreman源NO_PUBKEY 6F8600B9563278F6
查看>>
揭秘:蚂蚁金服bPaaS究竟是什么?
查看>>
mongo数据库单节点搭建
查看>>
WPF模糊和阴影效果
查看>>
增加关系型数据库驱动配置同步任务
查看>>
别用这种方式聊天,你都不知道自己是怎么聊死的
查看>>
中国香港地区 DDoS- botnet 态势分析
查看>>
另一个角度的架构师
查看>>
SparseArray<E>详解
查看>>
Eclipse-Java代码规范和质量检查插件-PMD
查看>>
阿里专家分享:企业级大数据轻量云实践
查看>>
阿里财报:云计算年度营收133亿,季度营收连续12个季度翻番
查看>>
人工智能化发展已经到了哪一步?
查看>>
php实现上传图片保存到数据库的方法
查看>>
安卓应用安全指南 5.4.3 通过 HTTPS 的通信 高级话题
查看>>
针对CMS中的tag标签理解
查看>>