【问题标题】:How to know if cronjob is failing (running a python command)如何知道 cronjob 是否失败(运行 python 命令)
【发布时间】:2011-08-22 20:51:11
【问题描述】:

当我运行这个命令时,输出消息被保存到 ok.t​​xt 中:

 /home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help | tee ok.txt

我有这个 cronjob:

* * * * * /home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help | tee ok.txt

但是没有任何东西保存到 ok.t​​xt

当我看到 cron 日志时

> sudo grep CRON /var/log/syslog

May 10 22:16:01 localhost CRON[23397]: (admin) CMD (/home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help | tee ok.txt)

这里没有提示,我做错了什么?提前致谢。

【问题讨论】:

  • 如果在运行 crontab 时发生错误,您应该会收到邮件。确保您阅读了本地邮件或将本地邮件重定向到您阅读的帐户。一种可能是这个virtualenvs 不能从 cron 获得;你应该解释它是什么。
  • 为什么要关闭它?如果它与编程完全相关,因为开发人员会通过自动化工作补充他们的代码! “开发人员编写 cronjobs” - 删除的答案是正确的!你为什么把它管理员关了?
  • 仅仅因为您碰巧是一名开发人员并不意味着这是一个编程问题。这是一个用户问题,所以我投票将其迁移到Super User,这将是合适的。我与被删除的答案无关。 IIRC 里面有一个重大错误,所以作者可能意识到了这一点并删除了它。

标签: python ubuntu cron crontab


【解决方案1】:

试试这个:

* * * * * /home/admin/virtualenvs/x.com/bin/python /home/admin/www/x.com/x/app/manage.py help > /tmp/ok.txt 2&>1

它应该将所有输出(stderr 和 stdout)放入您的 ok.t​​xt 文件中

【讨论】:

  • 为了支持上述内容,请始终在 crontab 条目中使用完整路径,谁知道工作目录是什么,即使您知道也不要指望它。
【解决方案2】:

首先我发现您没有正确的 crontab 语法:

Example of job definition:
.---------------- minute (0 - 59)
|  .------------- hour (0 - 23)
|  |  .---------- day of month (1 - 31)
|  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
|  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
|  |  |  |  |
*  *  *  *  * user-name command to be executed

您缺少用户名。

第二件事。不要假设您的 .bashrc 已加载。在 cron 中,您只需获得在文件顶部定义的环境。因此,如果您的脚本正在使用您在 bashrc 中定义的内容,那么它可能无法正确执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多