crontab调用python脚本的注意事项

发布时间:2020-09-11编辑:脚本学堂
在linux下可以使用crontab调用python脚本,本文分享下crontab计划任务中调用python代码时的注意事项,有需要的朋友作个参考。

1,注意事项一,删除或编辑
crontab -e
不过crontab默认的编辑器是vi,而一般系统使用的是vim, 这样.vimrc可能照出vi读取配置文件出错,这样crontab -e显示出来的是空白。
因此,需要把默认的编辑器改成vim, 在.bashrc设置
 

复制代码 代码示例:
export EDITOR=vim

2,注意事项二,调用脚本有使用gtk等x window系统,需要export DISPLAY环境变量
 

复制代码 代码示例:
 */1 9-15 * * 1-5 export DISPLAY=:0 && /home/terry/python/web/stockdaemon.py

3,注意事项三,调用python 脚本时注意实现。
如果程序是从if __name__ == "__main__": 开始执行的话,在shell中可以运行执行,但在crontab中不能执行,所以脚本要调用的函数不能在if __name__ == "__main__": 中

例如
 

复制代码 代码示例:

 def run():
       print "run"

if __name__ == "__main__":
     run()上面的脚本不会在crontab中运行, 需要改成如下方式:
 def run():
       print "run"
run()

4,注意事项四,当前目录的问题,配置文件等要使用绝对路径
例如:
logging.config.fileConfig("log.conf")
由于crontab执行时,脚本的当前目录已经改变,此时log.conf会找不到,会造成程序错误退出。

要修改为如下方式:
 

复制代码 代码示例:
logging.config.fileConfig("/home/terry/python/web/log.conf")

以上重点介绍了crontab调用python脚本时的四点注意事项,大家作个参考。

>>> 延伸阅读:
不错的crontab教程
linux定时任务设置crontab学习
crontab 命令格式与例子
学习linux设置定时任务的crontab命令
crontab学习笔记
crontab命令的一些例子
crontab命令基础与实例
Linux crontab命令小结(crontab基础知识)