Cron命令未执行

Cron命令未执行

我正在尝试使用 cron 删除容器中的日志文件:

$ crontab -e
# I add this line to file, must execute each 10 minutes
10 * * * * docker exec -it  explorer.org1.company.fr sh -c 'rm /opt/logs/app/app.log-*'

当我使用以下方法检查 cron 日志时

 grep CRON /var/log/syslog

我得到:

Jan 22 09:10:01 ip-172-31-46-123 CRON[4029]: (ubuntu) CMD (docker exec -it  explorer.org1.company.fr sh -c 'rm /opt/logs/app/app.log-*')

这似乎表明 cron 命令已触发。

但是当我使用以下命令检查文件时:

docker exec -it  explorer.org1.company.fr sh -c 'ls /opt/logs/app'

文件尚未被删除。

如果我手动执行该命令,它将删除这 2 个文件,因此它确认命令正在运行。

为什么使用 cron 运行时命令无效???

答案1

也许 docker 不在 cron 的 $PATH 中?请注意,cron 设置了自己的 $PATH 变量。cron 只会告诉 cronjob 是否已执行,而不会告诉您是否找到了命令。(但您在失败时收到的状态邮件会告诉它)。

也有一个失败

# I add this line to file, must execute each 10 minutes
10 ...

它应该是

*/10

答案2

安装Postfix/后Mutt,我收到错误消息:

the input device is not a TTY

讨论这里

删除-it后就docker exec成功了!

感谢您的帮助!

相关内容