【问题标题】:Why does my cronjob not send the email from my script? [closed]为什么我的 cronjob 不从我的脚本发送电子邮件? [关闭]
【发布时间】:2020-11-01 21:58:36
【问题描述】:

从 sh-3.2(以 root 登录)运行的 Crontab 脚本是:

* * * * * python /Users/tony/Documents/Python_Projects/Stock_Earnings_5.py #send an email every minute

Stock_Earnings_5根据逻辑发送邮件。

目前Stock_Earnings_5 独立工作,并在从 shell sh-3.2 手动运行时发送电子邮件(以 root 身份登录)。

crontab 也适用于终端的“hello world”。

因此,总而言之,crontab 适用于 hello world 程序到终端,而 Stock_Earnings_5 如果独立于 crontab 调用,则可以工作,但是当 crontab 调用 Stock_Earnings_5 时,它不会发送电子邮件。

【问题讨论】:

  • 这没有包含足够的细节来决定它是哪个常见问题解答的副本;投票结束,因为不完整。对于初学者来说,root 的 crontab 中的语法不同(有第六个字段指定要以哪个用户身份运行),但您的邮件配置不正确也是合理的。
  • stackoverflow.com/questions/22743548/cronjob-not-running 的可能副本,它至少告诉您在edit 提供更多详细信息之前要检查什么。可能你只要跟着它就知道哪里出了问题。
  • 我认为@S3DEV 意味着您需要将python /Users/tony/Documents/Python_Projects/Stock_Earnings_5.py... 行中的python 替换为系统的python 可执行文件的路径。
  • @TonyD - which python - 这将显示默认 Python 可执行文件的路径,当您在终端中键入 python 时会加载该可执行文件。
  • @S3DEV,我做了 which python 并将 crontab 脚本修改为: * * * * * /Users/tony/anaconda3/bin/python /Users/tony/Documents/Python_Projects/Stock_Earnings_5.py 和有效!!!谢谢!!!!

标签: python python-3.x cron


【解决方案1】:

要在上面正确发表我的评论:

请记住,运行 cron 的环境与您的用户环境具有不同的(最小)变量。因此,可能(并且通常)有必要提供 python 可执行文件的显式路径

可以使用which python 命令找到默认的python 可执行文件的路径。

示例:

$ which python
/home/username/anaconda3/bin/python

然后,在 cron 中使用:

* * * * * /home/username/anaconda3/bin/python /full/path/to/myscript.py

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-31
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多