crontabでコマンドが機能しない

crontabでコマンドが機能しない

今日が次のように毎月最初の月曜日であることを確認する方法があります。

['$(date "+%u")' = "1"] && echo 'trąba'

しかし、crontabで問題が発生したというEメールを送信するとエラーが発生します。

/bin/sh: -c: line 0: unexpected EOF while looking for matching `''
/bin/sh: -c: line 1: syntax error: unexpected end of file

私は変更しようとしています'$(日付 "+%u")'「$(date '+%u')」に変更しましたが、役に立ちません。電子メールの件名は["$(date '+]なので、最初の引用符に問題があるようですが、このコードは端末内で実行するとうまく機能します。多分誰かが一週間を確認するのに良い"確認"があるかもしれません。月

オペレーティングシステム:CeontOS 7

コントロール-l

* * * * * [ "$(date +%u)" -eq 1 ] && echo trąba

ベストアンサー1

固定POSIXコードは次のとおりです。

[ "$(date +%u)" -eq 1 ] && echo trąba

エラー/警告/情報は次のとおりです。

  • [..]ブロックにスペースがありません。

  • 二重引用符の代わりにアポストロフィ

  • -eqテストでは、POSIXの代わりに等号を使用してください[]

  • それ以降は何も引用する必要はありません。echo

  • 数字を引用する必要はありません。

  • dateコードを引用する必要はありません。


クローナ

*/1 * * * * [ "$(/usr/bin/date +\%u)" -eq 1 ] && /usr/bin/echo trąba >> ~/cron-test
  • これをテストするには、上記のコードを試してみてください。

  • システムの他の場所にdateバイナリを置き、そのecho場所、目的which dateなどを決定できます。

  • Cronを修正した後は、単に使用して静かに座ることができます。

    tail -f ~/cron-test
    

おすすめ記事