【问题标题】:Weird Python Cron Job Issue奇怪的 Python Cron 作业问题
【发布时间】:2018-09-12 04:05:24
【问题描述】:

我在 Ubuntu Server 16.04 上运行 Python 3.7,我有一个非常基本的 Python 脚本,可以从命令行正常运行,它通过简单的 shell 脚本运行良好,当我通过 crontab -e 设置 cron 作业时,或 webmin,cron 作业将在日志中显示为已发生。但是,该脚本实际上并没有运行,因为我将它设置为记录自身,并且它什么也不记录。谁能告诉我我在这里缺少什么?

我的 shell 脚本(getprice.sh):

#!/bin/sh
python3.7 /home/websites/www.coin-stack.com/py/getprice.py

我的python代码(getprice.py):

#!/usr/bin python3.7
import requests
import json
import logging
# ******************************* Settings *****************************************************************************
# Logging Setup
debug_level = 'INFO'
logging.basicConfig(level=logging.INFO, filename='run.log', format=' %(asctime)s -  %(levelname)s -  %(message)s')
logger = logging.getLogger(__name__)
crawl_queue = []
delay = 60
url = 'http://www.somedomainoranother.com/?p=somepage'
# **********************************************************************************************************************
def main():
    data = get_prices(url)
    data = json.loads(data)
    # Bitcoin
    btc = data['BTC']
    btc = btc['USD']
    return btc

def get_prices(url):
    resp = requests.get(url=url)
    data = resp.content
    return data
main()

我的 cron 工作:

*/10 * * * * /home/websites/www.mydomain.com/py/getprice.sh

【问题讨论】:

    标签: python shell ubuntu cron


    【解决方案1】:

    在我被建议添加额外的 crontab 信息以从日志文件中获取有用数据之后,解决方案是利用所需的确切 python 可执行文件的完整路径,而不是让 cron 使用它最喜欢的任何 python,这我猜是 Ubuntu 服务器上的默认 2.7。所以如果你想强制 cron 使用 Python 3.7,请使用完整路径:

    #!/bin/sh
    /usr/local/bin/python3.7 /home/scripts/py/getprice.py
    

    【讨论】:

      【解决方案2】:

      我的生产服务器上也发生了同样的事情! 请在 crontab 中尝试以下操作。

      */10 * * * * /home/websites/www.mydomain.com/py/getprice.sh > /path/cronjob.log 2>&1
      

      【讨论】:

      • 好吧,帮了大忙,现在新的日志文件告诉我没有找到python3.7,但是我直接运行shell脚本就找到了,为什么cron在小路?有没有办法让它更明确?
      • 我认为您应该从 shell 脚本中删除 python3.7 并将 crontab 注释更改为 */10 * * * * python3.7 /home/websites/www.mydomain.com/py/ getprice.sh > /path/cronjob.log 2>&1
      猜你喜欢
      • 1970-01-01
      • 2016-09-14
      • 2012-02-26
      • 2012-08-01
      • 2011-08-18
      • 2023-03-08
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多