zoukankan      html  css  js  c++  java
  • centos7 crontab 定时执行python任务不执行的原因及解决办法

    1、问题描述

    在用crontab设置定时任务时,发现py脚本在crontab中报错,显示import某些包找不到,但是手动直接运行py脚本,完全正常。
     
    01 05 * * * ./get_topic_hourly.sh >> get_topic_hourly.log 2>&1

    2、问题解析

    主要是crontab的运行目录和py脚本运行目录不一样(直接执行和通过任务执行,程序的 执行环境不同),更改py头的目录,直接指定当前系统中Python的目录,即更改py脚本中默认的头为 Python 安装 目录“!/usr/local/bin/python”,具体根据自己的目录更改
    查看python的安装目录可以用 which python 命令
     
    若以上设置了依旧不执行可以尝试下面的方式执行python

    * * * * * cd /var/www/clientfolder/ && /usr/bin/python /var/www/clientfolder/your_python_script.py
    原因是(直接拷贝):
    Script is location-sensitive. This is related to always using absolute paths in a script, but not quite the same. Your cron job may need to cd to a specific directory before running, e.g. a rake task on a Rails application may need to be in the application root for Rake to find the correct task, not to mention the appropriate database configuration, etc
    我分析可能是:直接执行脚本,脚本执行环境是脚本所在的目录,而定时的脚本执行环境默认是root目录,而当python脚本设置到相对文件路径时就不能执行了。
  • 相关阅读:
    剑指offer55. 平衡二叉树
    剑指offer52. 两个链表的第一个公共节点
    LC1043. Partition Array for Maximum Sum
    剑指offer40. Top K
    剑指offer39. 数组中出现次数超过一半的数字
    剑指offer36.将BST原地转换为双向循环链表
    判断大小端
    CentOS安装RabbitMQ 3.8.9
    Nginx 413 Request Too Large 错误
    NginxPC端和移动端区分
  • 原文地址:https://www.cnblogs.com/imustun/p/9604722.html
Copyright © 2011-2022 走看看