首页 > 解决方案 > crontab 似乎启动脚本,但没有任何反应

问题描述

我在我的 docker 容器中定义了很多 cronjobs,我在去度假时让它们运行。当我回来时,一切都停止了。似乎容器在我休假期间的某个时间点重新启动,并且我没有很好地配置我的 docker,使其无法自行重新启动 crontab 服务。

但是,现在我已经重新启动它,我的 cronjobs 不起作用。我检查了服务是否正在运行,我可以确保 crontab 正在完成它的部分工作,因为它的条目已成功记录在 syslog 中。但是我的脚本没有被执行。我从写入日志文件开始(我的任务是使用 Django 命令和 python 日志库),但日志文件没有更新。

从命令行手动运行命令仍然有效,我的命令指定了所有内容的绝对路径(甚至是要使用的 python 二进制文件......)。我不知道在哪里看才能了解此时出了什么问题。

注意:自从假期回来后,我确实更新了一些代码,但没有一个会影响脚本中的起始日志消息。

作为测试,我创建了一个脚本 bash,其中包含一行 : echo "foo" > /path/to/some_non_exiting_file.txtcrontab -e我使用并添加了行编辑 cron * * * * * myscript.sh。事实证明,下一分钟,我的文件被创建了,但它是空的。

标签: djangocrondjango-management-command

解决方案


在 bash bang 之后将此行添加到脚本的顶部:

#!/bin/bash
source ~/.bash_profile

此行将包含您的 bash 登录脚本和相关的环境设置。


推荐阅读