The following command works from prompt but not from crontab.
grep abc /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" s.o+`hostname`@gmail.com
I need to add it to daily cron.
The following command works from prompt but not from crontab.
grep abc /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" s.o+`hostname`@gmail.com
I need to add it to daily cron.
You have to escape the % signs. They have a special meaning in 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.
date +%F and was getting nowhere
– adamo
Feb 20 '15 at 12:14
SHELL=/bin/bash, I can always rewrite cat %Hello world as cat <<<'Hello world'. I do not see the need for special syntax.
– Witiko
Jul 19 '17 at 13:54
This doesn't directly answer your question, but I would suggest that you create a script file in /usr/local/bin (or ~/bin or whatever is appropriate) and call that from cron. It's easier to test and edit.