Примечание: при отладке таких проблем с помощью cron вы должны искать ошибки в вашей локальной системной почте или перенаправлять их в вашу реальную почту, добавив MAILTO=yourmail@yourdomain.com
поверх вашего файла crontab.
Есть две проблемы с вашей командой crontab
TLDR; фиксированное выражение cron
* * * * * docker exec sample_container bash -c 'touch /selected/directory/temp$(date +\%H-\%M)'
% имеет специальное значение в crontab
From man -s 5 crontab
Знаки процента (%
) в команде , если не экранировано с помощью backsla sh (\
), будет изменено на символы новой строки, и все данные после первого %
будут отправлены в команду в качестве стандартного ввода.
Так вам нужно будет экранировать эти %
знаки в строке формата даты
Cron не выделяет tty
Cron не выделяет tty, тогда как вы пытаетесь использовать один при выполнении вашей команды (то есть опция -t
для docker exec
). Поэтому команда завершится неудачно с ошибкой the input device is not a TTY
Вам не нужно ни go интерактивно (-i
), ни выделять tty для этой команды, чтобы она все равно выполняла свою работу, поэтому вам придется отбросить эти опции для запуска из cron.