我正在尝试使用 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运行时命令无效???
也许 docker 不在 crons $PATH 中?请注意,cron 设置了自己的 $PATH 变量。只是 cron 告诉 cronjob 被执行,它不会告诉你是否找到了命令。(但是您在失败时收到的状态邮件会告诉它)。
也有失败
它应该是
安装
Postfix
/后Mutt
,我会收到错误消息:这是讨论here
删除
-it
后docker exec
成功了!谢谢你的帮助!