crontabから月末までの残り日数を指定できますか?

crontabから月末までの残り日数を指定できますか?

毎週土曜日の午後11時に週間レポートを生成するスクリプトと、毎月1日に月間レポートを生成する別のスクリプトを実行したいと思います。
土曜日が毎月1日から3日以内に該当する場合は、毎週のレポートを実行したくありません。

月に一度です。

0 23 1 * * /home/me/monthly.sh

これは私が考えることができる週間項目に最も近いものです。

0 23 4-? * 6 /home/me/weekly.sh

疑問符を「月末3日前」という意味に変えることはできますか?それとも私の目的に合った他の方法はありますか?

月末になる前に数日を指定できることは、タスクスケジューラに必要な機能のように見えるため、crontabがこの機能を実行できない場合は少し驚きます。

私の選択肢は、Weekly.shで日付を確認し、最初の日から3日以内に停止することです。

ベストアンサー1

0 23 * * 6 [ $(date +%e -d "next saturday") -gt 3 ] && /home/me/weekly.sh

おすすめ記事