玖叶教程网

前端编程开发入门

centos7中crontab定时执行python脚本不生效

问题: 最近在项目中遇到crontab中定时执行python脚本不生效,但是手动直接运行python脚本能够正常执行。

系统环境: centos7

python安装路径:/root/anaconda3/bin/python

python脚本:/data/test/sftp.py

crontab中添加定时任务:0 * * * * python /data/test/sftp.py

问题原因

主要是crontab的运行目录和py脚本运行目录不一样(直接执行和通过任务执行,程序的执行环境不同),更改python脚本头的目录,直接指定当前系统中Python的目录:!/root/anaconda3/bin/python,具体根据自己的目录更改查看python的安装目录(可以用 which python 命令进行查看)

若以上设置了依旧执行不成功,可以尝试下面的方式执行python:

0 * * * * cd /data/test/ && /root/anaconda3/bin/python sftp.py

方法二:可以通过在 /etc/cron.d 下新建一个文件,去指定定时任务执行目录的方式去设置定时任务。
如,在 /etc/cron.d/ 下新建一个 sftp_py 的文件,内容如下:

SHELL=/bin/bash
PATH=/root/anaconda3/bin
MAILTO=root
HOME=/data/test
0 * * * * root python sftp.py

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言