web-dev-qa-db-fra.com

échappement des guillemets doubles et des signes de pourcentage (%) dans cron

La commande suivante fonctionne depuis Prompt mais pas depuis crontab.

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

Je dois l'ajouter au cron quotidien.

84
shantanuo

Vous devez échapper au % panneaux. Ils ont une signification particulière dans les 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.
140
bmk

Cela ne répond pas directement à votre question, mais je vous suggère de créer un fichier de script dans/usr/local/bin (ou ~/bin ou autre) et d'appeler cela depuis cron. Il est plus facile de tester et de modifier.

7
Randy Orrison