记录一次 Linux crontab 执行django 脚本 失败 的经历和解决办法
目的是想通过定时任务来执行一次数据统计,本来可以用celery来做,但是想着这个项目整个就没用到异步的地方,所以决定用crontab来做.之前做过数据库的热备份,想来用该没啥问题,但是现实打脸啪啪响.
具体现象是: 通过注册新的定时任务执行shell脚本,脚本中执行Python脚本,然后Python脚本一直没有执行效果.
这不应该呀,然后写了个普通的helloworld类型的脚本,发现跑着没问题.
那就应该是环境问题,然后按照通常的方案来处理,在Python文件中添加path路径,还是不行.
最后网上找了个输出错误日志的办法,将错误日志导出,发现问题了.
我是以root的身份注册执行定时任务的,然后crontab将文件的执行位置放在了 /root 下 !
好吧, Python提供了文件操作的库 os,那就用os来切换位置好了.
好了, 当切换路径之后,执行位置更换了,也就不存在当前位置不在导包列表中的问题了.
后面附上此次问题解决的关键, 错误日志的输出方法,对我们小白来说,这是很关键的.
0表示键盘输入
1表示标准输出
2表示错误输出.
上面就是把执行的错误信息输出到指定文件