Команда 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-*'

Когда я проверяю, что крон регистрируется с

 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-*')

Который, кажется, указывает на ту инициированную команду крона.

Но когда я проверяю файлы с:

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

файлы не были удалены.

Если я выполню команду вручную, то она удалит эти 2 файла, таким образом, она подтвердит, что команда работает.

Почему команда не является эффективной при выполнении с кроном???

0
задан 22 January 2020 в 12:19

2 ответа

возможно, докер не находится в $PATH кронов? Обратите внимание, что крон устанавливает свой собственный var $PATH. Просто тот крон говорит, что cronjob выполняется, он не говорит Вам, если команда была найдена. (Но почта состояния, которую Вы получили бы при отказе, скажет его).

также существует отказ в

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

это должно быть

*/10
1
ответ дан 22 January 2020 в 23:42

После установки Postfix / Mutt, Я мог получить сообщение об ошибке:

the input device is not a TTY

Это обсуждено здесь

Удаление -it после docker exec добился цели!

Спасибо за помощь!

1
ответ дан 22 January 2020 в 23:42

Другие вопросы по тегам:

Похожие вопросы: