【问题标题】:Crontab never run on Ubuntucrontab 从未在 Ubuntu 上运行
【发布时间】:2019-12-14 09:17:46
【问题描述】:

我有以下 crontab 设置。

30 * * * 1-5   /home/ubuntu/script_abc.sh 

script_abc.sh 有权限-rwxr-xr-x 及以下内容。

#!/bin/sh

source ~/my_app/venv/bin/activate

export APP_KEY=abkajdfljdasfljdalfk
cd ~/my_app
python ~/my_app/scripts/scan.py 

似乎 crontab 从未运行我的脚本。任何想法?

【问题讨论】:

  • crontab 可以以不同的用户、不同的权限、不同的系统变量运行脚本。最好使用完整路径 - 而不是 ~/
  • 似乎错误来了我无法激活Python虚拟环境
  • 最好使用程序的完整路径 - /usr/bin/python。您可以使用which 获取程序的完整路径 - 即。 which python
  • 请记住 .profile.bashrccrontab 跳过,PATH 修改和其他设置将被忽略。在脚本或 crontab 命令中尝试 source /home/ubuntu/.profile

标签: python shell ubuntu cron


【解决方案1】:

是本地用户的 crontab 还是您在 /etc/cron.d/ 中进行更改 如果是后者,您需要像我在下面的示例中那样提及用户名:

30 14 * * *   root <script>

如果是前者,你可以。

  1. 查看系统日志。当 cron 守护进程尝试调用您的脚本时,您将看到发生了什么。

  2. 确保所有脚本中都有绝对路径。

【讨论】:

    【解决方案2】:

    crontab 没有设置 PATH 并且找不到二进制文件。在脚本顶部添加 PATH,或在 crontab 顶部添加导出。

    # for example
    PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      • 2020-03-09
      • 2014-04-04
      • 1970-01-01
      • 2013-07-05
      • 2015-03-18
      • 2014-07-14
      相关资源
      最近更新 更多