【问题标题】:Cronjob doesn't work when given a specific time给定特定时间时,Cronjob 不起作用
【发布时间】:2020-08-03 01:48:11
【问题描述】:

我想使用 crontab 来设置一个重复出现的脚本。我希望它每天 23:59 运行一个 python 脚本,这就是我使用的:

59 23 * * * python /var/www/script.py

这似乎不起作用。该脚本在我独立运行时运行良好,但在 2359 时未激活。

我也尝试了其他方法:

*/1 * * * * python /var/www/script.py

这将是一个每分钟运行一次相同脚本的 cron。这很好用,每分钟都会调用一次,一切都很好

设置一天中的特定时间不起作用,但设置为每分钟关闭一次,是否有原因?

【问题讨论】:

  • 会发生什么。它没有运行还是在错误的时间运行。您是在系统上运行还是在本地计算机上运行?你确定它不是在晚上关闭吗?我曾经有一个系统,我认为它是 24/7 全天候运行,但在每个人回家后都被关闭了。
  • 它在我通过 SSH 进入的 linux 机器上。我通过 ssh 的连接在 cron 的时间要结束时仍然存在,所以我确定盒子还活着
  • 时间到了,什么也没有发生。它根本不运行。如果它运行它会将一些行插入到我拥有的 mysql 数据库中,但那里没有新行的痕迹。所以我很确定实际上没有发生任何事情 - 至少,本应发生的事情的最终结果没有发生
  • 脚本是否打印或记录任何内容?在/var/www/script.py 之后添加>> /tmp/script.log 2>&1
  • 所以我改成了:30 02 * * * python /var/www/script.py >> /tmp/script.log 2>&1等到凌晨2点30分,去找找日志文件,在任何地方都找不到。安全假设 cron 在达到 230 时没有运行?

标签: python cron crontab


【解决方案1】:

cron 作业以其 crontab 触发运行的用户身份运行,并且应该在他的主目录中,除非正在运行的脚本有 cd 命令。创建一个可执行的 bash 脚本,其中包含回显命令或触摸和/或删除文件以及调用您的 python 脚本并查看是否完成了任何操作。在调用 python 脚本后,尝试“cat 'abcd'> dummy.txt”以及 python 和另一个。哪个用户在运行 crontab -e 命令?

您是否收到任何邮件回复?

【讨论】:

    【解决方案2】:

    cron 进程每隔一小时定期工作,直到我给他们一个特定的时间。

    首先检查cron是否运行正常

    sudo service cron status
    

    如果它失败了,你会看到类似:

    活动:失败... ... /usr/sbin/cron[17912]: (CRON) DEATH (无法锁定 /var/run/crond.pid, otherpid 可能是 XXXXX: 资源暂时不可用)

    根据the link here,您需要杀死该进程并重新启动它。

    要杀死进程,你可以运行:

    sudo kill -9 $(cat /var/run/crond.pid)
    

    然后重新启动服务:

    sudo service cron start
    

    最后,检查它是否正在运行:

    sudo service cron status
    

    要了解背后的原因,请查看the link

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-10
      • 2014-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-04
      • 2020-08-14
      • 2022-11-10
      相关资源
      最近更新 更多