Некоторые точки данных для знания с арены общественного транспорта:
Есть четыре распространенных причины, по которым команды задания cron ведут себя иначе, чем команды, вводимые непосредственно в интерактивной оболочке:
$ PATH
, и другие ожидаемые переменные отсутствуют. / bin / sh
, тогда как вы можете использовать другую оболочку в интерактивном режиме. %
специально (он превращается в новую строку в команде). Вы должны предварять все символы %
символом \
в файле crontab, который указывает cron просто поместить в команду %
, например
16 * * * * mysqldump myDB myTB > "/backup/ABCbc$(date +'\%d-\%b-\%Y-\%H-\%M').sql" 2> "/backup/ABCbc_errORS$(date +'\%d-\%b-\%Y-\%H-\%M').txt"
(Отдельно следует всегда заключать в двойные кавычки «$ variable_substitution»
или «$ (подстановка команд)»
, если вы не знаете, почему бы не сделать это в В противном случае, если содержимое переменной или выходные данные команды содержат пробелы или ? * \ [
, они будут интерпретированы оболочкой.)
Пока в строке формата, заданной в качестве аргумента даты, нет пробелов, вам вообще не нужны галочки.
date +%d-%b-%Y-%H-%M
должно работать.
Вы используется синтаксис, не поддерживаемый / bin / sh. Попробуйте вызвать предпочитаемую оболочку и передать команду в качестве аргумента.