Linux(Ubuntu)上的定制定时任务Crontab

1.Python模块导入的搜索路径在linux环境下应该全力去避免在路径中出现中文字符, 这可能会导致无法搜索到模块.

2.为Python添加模块加载路径的方法:

方法1:函数添加

import sys
sys.path
>>>
sys.path.append("/home/ww/int")	

方法2:修改环境变量
例如: EXPORT PYTHONPATH=/home/ww/int:$PYTHONPATH
方法3:增加.pth文件(推荐)
cd /usr/local/lib/python2.7/dist-packages
在该目录下新建一个文件 vim mypath.pth
输入路径内容: /home/ww/int

3.crontab

 linux上的周期性任务通常都是由cron这个守护进程来完成的, cron启动的时候, 它会读取配置文件, 并把信息保存在内存中, 没过一分钟, cron会重新检查配置文件, 并执行这一分钟内安排的任务.
 基础的用户配置文件:
 crontab filename // 将文件安装为用户的crontab文件, 并替换原来的版本
 crontab -e // 滴啊用编辑器打开用的crontab文件, 在用户完成编辑后保存该定时任务
 crontab -l // 列出用户crontab文件中的内容
 crontab -r // 删除用户自己的crontab文件

如何创建一个合格的配置文件?
格式: 分钟 小时 日期 月份 星期几
* * * * * python m.py 每一分钟执行一次
*/2 * * * * python m.py 每两分钟执行一次
0 */2 * * * python m.py 每一个小时执行一次
以此类推

4.查看定时任务执行情况

有的linux系统默认crontab是没有开始cron.log的, 需要去开启.

  1. 修改rsyslog文件, 将/etc/rsyslog.d/50-default.config文件中的 # cron.*注释给删除掉
  2. 重启rsyslog服务 : service rsyslog restart
  3. 重启cron服务 service cron restart
    如果在cron.log中出现: No MTA installed, discarding output, 那么说明你的这个定时任务出现了错误的信息或者打印的字符串.
    这个时候就需要安装一个mail服务来接收这个信息,
    sudo apt install mailutils
    如果不想接收该条信息, 当做临时测试的文件去处理的, 可以在每条定时的脚本任务后面加入: >/dev/null 2>&1 , 即可解决cron.log中的No MTA信息的问题

猜你喜欢

转载自blog.csdn.net/qq_41637554/article/details/83275442