Команда с символами процента, которые не работают в crontab

10

Следующий crontab не работает:

# TEST LINE DOES DOT RUN
*/1 * * * * /bin/echo 'test ''/bin/date +%Y-%m-%d' >> /tmp/test

Я также попытался запустить его с помощью:

SHELL=/bin/bash

Обновление: Я думал, что обратные символы были злодеями, но поскольку нижеприведенный ответ поясняет, что%% был виновником!

    
задан lpanebr 13.03.2014 в 18:56
источник

1 ответ

12

В /bin/date +%Y-%m-%d вам нужно избежать каждого % с \ согласно этой странице руководства :

  

Поле «шестое» (остальная часть строки) указывает команду для запуска. Вся командная часть строки, вплоть до символа новой строки или%, будет выполнена / bin / sh или оболочкой, указанной в переменной SHELL файла cron. Процентные знаки (%) в команде, если они не сбрасываются с помощью обратного слэша (), будут изменены на символы новой строки, а все данные после первого% будут отправлены команде в качестве стандартного ввода.

    
ответ дан DK Bose 14.03.2014 в 05:21
источник