У меня есть следующий crontab:
# m h dom mon dow command
* * * * * /bin/date >> /tmp/date.log 2>&1
* * * * * /bin/date "+%F_%H-%M-%S" >> /tmp/date2.log 2>&1
Первый выполняется правильно .. запись текущей даты в /tmp/date.log
Второй не работает. /tmp/date2.log
никогда не создается. Единственное отличие состоит в том, что вторая команда даты имеет в качестве параметра строку форматирования. Вне cronjob вторая команда даты (/bin/date "+%F_%H-%M-%S"
) работает отлично.
В чем может быть причина такого поведения?
Моя система:
uname -a
Linux corsair 4.15.0-50-generic #54-Ubuntu SMP Mon May 6 18:46:08 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
lsb_release -a
Distributor ID: LinuxMint
Description: Linux Mint 19.1 Tessa
Release: 19.1
Codename: tessa
Неэкранированные знаки процента в команде заменяются символами новой строки, см. crontab (5). Перед ними нужно поставить обратную косую черту.