web-dev-qa-db-ja.com

cronでの二重引用符とパーセント記号(%)のエスケープ

次のコマンドは、プロンプトからは機能しますが、crontabからは機能しません。

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

毎日のcronに追加する必要があります。

84
shantanuo

エスケープする必要があります%の標識。それらは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

これはあなたの質問に直接答えるものではありませんが、/ usr/local/bin(または〜/ binまたは適切なもの)にスクリプトファイルを作成し、それをcronから呼び出すことをお勧めします。テストと編集が簡単です。

7
Randy Orrison