(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【cron】crontabで実行するコマンドに%がある際のエラー

スポンサーリンク

事象

crontabにてdate '+%Y%m%d%H%M'を実行するも以下のエラーで失敗する。

$ cronevents
...
/usr/sbin/cron: PID 2415: (...) CMD (date '+)
/usr/sbin/cron: PID 2414: (...) UNSAFE XX
...
環境情報
  • ISC Cron V4.1

原因/解決策

%が文字列として認識されていない。よってエスケープ文字(\)を頭に入れて以下のようにすれば

date '+\%Y\%m\%d\%H\%M'

正しく実行される。以下、補足です。

補足

イベントログを見れば、「CMD date '」というシングルクオーテーションで止まっているため、パーセントが読み込めていないことが原因ということが分かります。

解決策に記載した通りエスケープ処理を行えば、以下のように正しくコマンドが展開されて実行できていました。

[XX] /usr/sbin/cron: PID 2422: (XX) CMD (date '+%Y%m%d%H%M')

以上、ご参考になれば幸いです。