前言
用python代码实现了发送【自定义内容】邮件,初始目的:通过每日定时发送邮件提醒~~(就是个备忘录)~~;后续目的:通过爬虫,定时爬取一定的咨询,通过邮件发送(基于云服务器)
为了实现这样的想法,需要做的准备:
- python代码文件
- 云服务器+配置好python等环境~~(无非安装python和一些列的pip)~~
- 稍微了解crontab、sh脚本文件的相关知识
具体的实现
方法一
先说简单的方法后来才注意到的
如果使用的云服务器有宝塔镜像系统,那一切都简单
将python文件上传到云服务器的文件夹中,如:

在宝塔系统界面,点击左侧的计划任务,并在任务类型中选择Shell脚本:

确定名称、执行周期,最后在脚本任务中输入:
python /www/xxx/Mail.py【解释】
python /绝对路径/xxx.py就执行python程序
方法一就是这么直接简单,它会自动在系统中生成crontab相关的信息与日志~~(但是不用管)~~
下面介绍手动添加配置信息,实现云服务器crontab定时任务
方法二
基本原理
云服务器上实现定时运行python任务:
- 核心是用Python运行py文件
- 不同的py文件运行所需的虚拟环境、库的配置可能都不一样,因此需要sh脚本文件
- 脚本文件中,在
python xxx.py前后,可能就需要active虚拟环境、打开路径等操作 - Linux系统能实现定时执行任务,需要的是crontab
- crontab能直接执行简单的语句命令,也能通过运行sh脚本文件执行繁复的语句命令
踩坑事项
- crontab的配置文件修改:通过指令打开修改;找到配置文件进行vi修改。后者很肯能因为权限问题而修改不成功
所用得到的指令
- service crond start //启动服务
- service crond stop //关闭服务
- service crond restart //重启服务
- service crond reload //重新载入配置
- service crond status //查看服务状态
- tail -f -n 200 /var/log/cron //查看日志信息,判断运行情况
- crontab -u //编辑文件内容
- crontab -l //显示文件内容
实际操作(用的笨方法)
- 输入crontab -e打开文件进行编辑
【注】打开的是 /var/spool/cron/root文件,不同的系统可能不一样 - 添加定时任务,所需执行的语句命令
如下图中的第‘2’行所示,此为方法一中添加计划任务时自动添加的信息
这里仿照进行了编写‘3’,保存退出
【解释】‘>>’前的路径是指所执行的文件,‘>>’后的指将执行结果生成日志保存入.log中
【注】踩得坑就是手动打开root文件进行添加,保存后并不起作用,crontab -e编辑的就行 - 在2中路径下的‘testcreate’文件,打开后是:

【注】核心语句就只有一句python /绝对路径/xxx.py;如果是复杂命令可换成:bash /xxxx/xxxx/xxxx.sh - 需要先自行创建‘testcreate’文件进行编辑
#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
python /xxxx/xxxxxxx/xxxx/xxxx.py
echo "----------------------------------------------------------------"
endDate=`date +"%Y-%m-%d %H:%M:%S"`
echo "★[$endDate] Successful"
echo "---------------------------------------------------------------"
- 保存后,还需将‘testcreate’文件的权限改为750
至此完成
方法三
一般来说,通过crontab结合sh文件部署就OK,其他大佬都有。千万要自行百度
版权声明:本文为weixin_43820324原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。