Назад | Перейти на главную страницу

экранирование двойных кавычек и знаков процента (%) в cron

Следующая команда работает из командной строки, но не из crontab.

 grep abc  /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" shantanu.oak+`hostname`@gmail.com

Мне нужно добавить его в ежедневный cron.

Вы должны избежать % приметы. В crontabs они имеют особое значение:

man (5) crontab:

Percent-signs (%) in the command, unless escaped with backslash (\), 
will be changed into newline characters, and all data after the 
first % will be sent to the command as standard input.

Это не дает прямого ответа на ваш вопрос, но я бы посоветовал вам создать файл сценария в / usr / local / bin (или ~ / bin или что-то еще) и вызвать его из cron. Так проще тестировать и редактировать.