Il seguente comando funziona dal prompt ma non da crontab.
grep abc /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" shantanu.oak+`hostname`@gmail.com
Devo aggiungerlo al cron giornaliero.
Il seguente comando funziona dal prompt ma non da crontab.
grep abc /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" shantanu.oak+`hostname`@gmail.com
Devo aggiungerlo al cron giornaliero.
Risposte:
Devi sfuggire ai %
segni. Hanno un significato speciale nei crontab:
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
e non andavo da nessuna parte
SHELL=/bin/bash
, posso sempre riscrivere cat %Hello world
come cat <<<'Hello world'
. Non vedo la necessità di una sintassi speciale.
Questo non risponde direttamente alla tua domanda, ma suggerirei di creare un file di script in / usr / local / bin (o ~ / bin o qualunque cosa sia appropriata) e chiamarlo da cron. È più facile testare e modificare.