Вопрос по date, linux, cron, crontab, bash – Почему знаки процента (%) не работают в crontab? [Дубликат]

2

На этот вопрос уже есть ответ здесь:

Чем отличается% в cron#ab? 1 ответ

Я записываю файлы в журнал, запускаемый сценарием bash, используя cron. Вызов cron выглядит так:

*/25 * * * * bash scrip#.sh &g#; "/var/log/$(da#e +%Y-%m-%d_%H:%M).log"

Но когда я проверяю cron#ab, он записывает как

*/25 * * * * bash scrip#.sh &g#; "/var/log/$(da#e +).log"

И это никогда не пишет файл журнала. Есть ли что-то, что мне нужно изменить, чтобы cron написал дату?

Ваш Ответ

1   ответ
4

* * * * * /usr/bin/touch /tmp/$(date +\%Y:\%m).log
#                                      ^   ^

работал для меня.

Изman 5 crontab:

Знаки процента (%) в команде, если они не экранированы обратной косой чертой (\), будут изменены на символы новой строки, и все данные после первого% будут отправлены команде в качестве стандартного ввода.

Так

*/25 * * * * /bin/bash script.sh > "/var/log/$(date +\%Y-\%m-\%d_\%H:\%M).log"
#                                                    ^    ^   ^   ^   ^

должно сработать.

Обратите внимание, я использовал/bin/bash вместо простоbash.

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